# Node Lifecycle

**URL:** <https://forum.knime.com/t/node-lifecycle/21102>\
**Category:** Node Development\
**Created:** [February 17, 2020, 5:18pm UTC](https://forum.knime.com/t/node-lifecycle/21102 "2020-02-17T17:18:32Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![bfrutchey](https://forum-cdn.knime.com/letter_avatar_proxy/v4/letter/b/97f17d/32.png) [@bfrutchey](https://forum.knime.com/u/bfrutchey)\
**Post date:** [February 17, 2020, 5:18pm UTC](https://forum.knime.com/t/node-lifecycle/21102/1 "2020-02-17T17:18:32Z")

</div>

I am hoping to better understand the lifecycle of node processing. For example, when is the NodeModel’s

```auto
protected DataTableSpec[] configure(final DataTableSpec[] inSpecs) throws InvalidSettingsException;

```

method called? Is it only when the NodeDialog settings change, or is it executed every time the NodeModel’s

```auto
protected BufferedDataTable[] execute(final BufferedDataTable[] inData, final ExecutionContext exec) throws Exception;

```

is called? I gather from digging through source documentation that in the answer to this particular questions depends on the return of NodeModel’s

```auto
protected boolean resetAndConfigureLoopBody();

```

method. Is there a single document which describes the execution lifecycle though? Thanks!

---

<div class="post-metadata">

**Author:** ![AlexanderFillbrunn](https://forum-cdn.knime.com/user_avatar/forum.knime.com/alexanderfillbrunn/32/357_2.png) [@AlexanderFillbrunn](https://forum.knime.com/u/AlexanderFillbrunn)\
**Post date:** [February 19, 2020, 9:15am UTC](https://forum.knime.com/t/node-lifecycle/21102/2 "2020-02-19T09:15:24Z")

</div>

Hi @bfrutchey,  
the `configure` method is used to determine the output the node will produce when `execute` is called. This description of the output, e.g. the table spec if the output port is a data table, is then passed on to the following nodes. They in turn execute their configure method to pass on their output again. So any time the output might change, configure is called. Concretely, that is when the settings of the node change or when an upstream node’s settings changed, when a new connection into the node is made, or when the node is reset. I think the `resetAndConfigureLoopBody` method is used only by loops to reset all the nodes in the loop, as that is what happens before every iteration.  
Kind regards  
Alexander
