> For the complete documentation index, see [llms.txt](https://docs.selfuel.digital/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.selfuel.digital/stream-processing-with-cortex/applications/processing-nodes-cluster/processor.md).

# Processor

In Cortex, when constructing Applications using Node Units, the Processor Node plays a critical role.  Processor Node is required to determine the handling of outputs from input-processing Nodes like Query, Join, Pattern, and Sequence Nodes. It's a key requirement to connect these Nodes with a Processor Node.&#x20;

{% hint style="danger" %}
Every Query, Join, Pattern, and Sequence Nodes should be connected with a Processor Node to determine output manipulations. (*cf.* [Node Units](/stream-processing-with-cortex/cortex-elements/nodes/node-units.md))
{% endhint %}

This connection is essential for defining and executing the desired manipulations on the outputs of these processing Nodes, ensuring that the data flow and processing within your Application are coherent and aligned with your objectives.

## Step 1 - General

### Name and Description

When configuring a Processor Node in Cortex involves several key actions.&#x20;

* Assign a unique name to the Node, distinct from other Nodes in your Application.
* Optionally, add a Description for detail and clarity.
* The Node Name and Description will help distinguish it in the Canvas via Node Preview.

### Attributes

For the Processor Node in Cortex, the Attributes are automatically derived as inputs from Buffer Nodes connected to its left side.&#x20;

* Attributes in the Query Node automatically originate from Buffer Nodes to its left.
* Attributes Table displays a list of Attributes Names, Input Node Names, and Attribute Types for each input attribute.

<div data-full-width="true"><figure><img src="https://1184018446-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FBUPFHdhLeYWovl0V5F9g%2Fuploads%2FMMOsIRRInAX5RTfbVX8b%2Fnodes_processor_step1_ug.png?alt=media&amp;token=6f0c3c33-bf7f-45ca-bacd-4c204de879c7" alt=""><figcaption></figcaption></figure></div>

## Step 2 - Output Actions

### Connecting At-Least One Output Node

In Step 2 of the Processor Node, it's required to connect at least one output node and define its attributes to its right before proceeding.

{% hint style="info" %}
You can connect **more than one output node** to the right of the Processor Node.
{% endhint %}

* You need to connect at least one output node to Processor to continue.
* This output node may be a Sink or a Buffer Node (Stream, Table and/or Window).
* You also need to define output nodes' attributes also.

{% hint style="danger" %}
In Processor Node's Step 2, it's crucial to **connect to an at least one output node and define its attributes** to proceed (either a Sink Node or a Buffer Node) to the Processor Node. Failure to establish this connection will result in an error message.
{% endhint %}

### Deciding on the Event Type

After you connect at least one output node; you will now decide on the "freshness" of events that will be sent to the output node. Event Type choice is where you define "freshness" that is defined via Window Expiry.

"Fresh" events are called Current Events that have not expired and are within the temporal or quantitative bound that a window constitutes.

Any input node that incorporates a window also accommodates some "expired" events as windows keep events based on a time/quantity condition (*cf.* [Windows](/stream-processing-with-cortex/cortex-elements/windows.md)). As these expired events have already expired due to Window Expiry; they are considered "stale/not-fresh" compared to Current Events that have not expired yet.

{% hint style="info" %}
Windows additionally accommodate Expired Events along with Current Events that are considered "fresh" in their Window Queue.
{% endhint %}

Event Type is crucial for identifying which type of events will be relayed to the output node when an input node should send these events.&#x20;

{% hint style="warning" %}
You should select an Event Type if you have a Window Node **or** have enabled windows in the Query Node.&#x20;
{% endhint %}

<table><thead><tr><th width="228">Event Type</th><th>Description</th><th data-hidden></th></tr></thead><tbody><tr><td>Current Events</td><td>Only events that are actively within the input node window's defined criteria will be sent to the output node.</td><td></td></tr><tr><td>Expired Events</td><td>Only events that were once current but have now exceeded the window's criteria will be sent to the output node.</td><td></td></tr><tr><td>All Events</td><td>Both current and expired events at the window will be relayed to the output node.</td><td></td></tr></tbody></table>

### Deciding on the Output Actions

After you decide on the Event Type for windows, you will now decide with Output Actions on the output node(s). This is where you determine the relay action to the output node.&#x20;

* Allowed output actions to the output node(s) depends on the type of the output node.
* If only Insert action is allowed for the output node, you need not to make a decision.

<table><thead><tr><th width="226">Type of Output Node</th><th>Allowed Output Actions</th><th data-hidden></th></tr></thead><tbody><tr><td>Stream/Sink</td><td>Insert</td><td></td></tr><tr><td>Table</td><td>Insert, Update, Update or Insert (Upsert), Delete</td><td></td></tr><tr><td>Window</td><td>Insert</td><td></td></tr></tbody></table>

### i. Insert

Lets the input attributes to be inserted into the output nodes with the logic that will be decided on following Steps.

{% hint style="info" %}
If you decide to select Insert as Output Action; you can continue to the next Step:[#step-3-output-attributes](#step-3-output-attributes "mention").
{% endhint %}

### ii. Update

Allows some or all output Table Node attributes to be updated.

{% hint style="info" %}
You can only **update** attributes of an output node only if it is a Table Node.
{% endhint %}

#### Optional Update Condition

Allows an output Table Node attributes to be updated based on an optional Update Condition.&#x20;

{% hint style="warning" %}
Without an Update Condition, all events in the output Table Node will be updated.&#x20;
{% endhint %}

* Update Condition determines how events are selected for updating.&#x20;
* When using table attributes in the Update Condition, they must be referenced with the table name.&#x20;

{% hint style="danger" %}
We strongly encourage that you utilize Connected Node Attributes top-most section of the [Expression Builder](/stream-processing-with-cortex/cortex-elements/expression-builder.md) in order to properly utilize output Table Node's attributes.
{% endhint %}

#### Optional Set Conditions for Output Table Attributes

The Set Conditions allows selective updating of output Table Node attributes. Here, each assignment's left side specifies the attribute to update, while the right side can include various elements like query output attributes or mathematical operations. You can use [Expression Builder](/stream-processing-with-cortex/cortex-elements/expression-builder.md) to construct Set Conditions.

{% hint style="warning" %}
If any Set Conditions are not utilized for any output Table Node attribute, all output Table Node attributes are updated based on the Update Condition.
{% endhint %}

### iii. Update or Insert (Upsert)

Allows all output Table Node attributes to be updated or inserted unless they exist based on an optional Update or Insert Condition.

{% hint style="info" %}
You can only **update or insert** the attributes of an output node only if it is a Table Node.
{% endhint %}

#### Optional Update or Insert Condition

Allows all output Table Node attributes to be updated or inserted based on an optional Update Condition.&#x20;

{% hint style="warning" %}
Without an Update or Insert Condition, all events in the output Table Node will be updated.&#x20;
{% endhint %}

* Update or Insert Condition determines how events are selected for updating or insertion.&#x20;
* When using table attributes in the Update Condition, they must be referenced with the table name.&#x20;

{% hint style="danger" %}
We strongly encourage that you utilize Connected Node Attributes top-most section of the [Expression Builder](/stream-processing-with-cortex/cortex-elements/expression-builder.md) in order to properly utilize output Table Node's attributes.
{% endhint %}

#### Set Conditions for Output Table Attributes

The Set Conditions allows updating or inserting of all output Table Node attributes. Here, each assignment's left side specifies the attribute to update, while the right side can include various elements like query output attributes or mathematical operations. You can use [Expression Builder](/stream-processing-with-cortex/cortex-elements/expression-builder.md) to construct Set Conditions.

{% hint style="warning" %}
*Different from an Update operation*; when utilizing Update or Insert you **must** Set Conditions for all output Table Node attributes.
{% endhint %}

### iv. Delete

Allows to delete output Table Node attributes based on a Delete Condition if specified.

{% hint style="info" %}
You can only **delete** attributes of an output node only if it is a Table Node.
{% endhint %}

#### Optional Delete Condition

Allows some output Table Node attributes to be deleted based on an optional Delete Condition.&#x20;

{% hint style="danger" %}
**BE CAREFUL:** Without a Delete Condition, the table in the output Table Node will be deleted.
{% endhint %}

* Delete Condition determines how events are selected for deletion.&#x20;
* When using table attributes in the Delete Condition, they must be referenced with the table name.&#x20;

{% hint style="danger" %}
We strongly encourage that you utilize Connected Node Attributes top-most section of the [Expression Builder](/stream-processing-with-cortex/cortex-elements/expression-builder.md) in order to properly utilize output Table Node's attributes.
{% endhint %}

## Step 3 - Output Attributes

### Output Attributes

On Output Attributes section, you will create mappings between input and output nodes' attributes.&#x20;

{% hint style="info" %}
All output node attributes must be defined via an expression that use input node atttributes.&#x20;
{% endhint %}

You may refer to the [Expression Builder](/stream-processing-with-cortex/cortex-elements/expression-builder.md) and [Built-in Functions](/stream-processing-with-cortex/cortex-elements/expression-builder/built-in-functions.md) sections to see how you can embed processing logic to your output node attributes.

When dealing with multiple output nodes, the attributes are grouped based on their respective output Node Names. You are required to define expressions for each attribute across all output nodes, ensuring a precise mapping and functional alignment between inputs and outputs.

<div data-full-width="true"><figure><img src="https://1184018446-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FBUPFHdhLeYWovl0V5F9g%2Fuploads%2FuALl1DgVv2XqYY4OZvbB%2Fnodes_processor_step2_1of3_mac.png?alt=media&amp;token=f4c326ae-07af-42eb-b9cf-8c023858f96d" alt=""><figcaption></figcaption></figure></div>

<div data-full-width="true"><figure><img src="https://1184018446-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FBUPFHdhLeYWovl0V5F9g%2Fuploads%2FpB8Ii6mrb8IYNKQHVzwR%2Fnodes_processor_step2_2of3_ug.png?alt=media&amp;token=a130ddb5-12b5-4f40-a885-aa4c70460f63" alt=""><figcaption></figcaption></figure></div>

### Aggregation Groups

After you create mapping between input and output node attributes; you will now decide on the Aggregation Groups if you need any.

{% hint style="info" %}
To add an Aggregation Group click the Add Aggregation Group button. Using the dropdown menu you can decide which output node you want to create Aggregation Group(s) for.
{% endhint %}

Any Input node that incorporates a window also clusters multiple events of every attribute based on a time/quantity condition (*cf.* [Windows](/stream-processing-with-cortex/cortex-elements/windows.md)). Aggregation Groups lets you aggregate windowed events based on their attributes.

{% hint style="info" %}
When input node attributes are **already** subjected to any windowing as they arrive; they can also be aggregated based on one or more attributes.
{% endhint %}

{% hint style="warning" %}
Aggregation Gorups becomes activated if you have a Window Node **or** have enabled windows in the Query Node.&#x20;
{% endhint %}

<div data-full-width="true"><figure><img src="https://1184018446-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FBUPFHdhLeYWovl0V5F9g%2Fuploads%2FEMckG1Qf9HgahA5RNpg8%2Fnodes_processor_step2_3of3_ug.png?alt=media&amp;token=3320687e-d223-4967-9e47-b1bebddbf7c4" alt=""><figcaption></figcaption></figure></div>

##

<div data-full-width="true"><figure><img src="https://1184018446-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FBUPFHdhLeYWovl0V5F9g%2Fuploads%2FcW6nMM5FZ3oFcGGi10c5%2Fnodes_processor_step3_1of5_ug.png?alt=media&amp;token=667f2efb-1f44-4d95-88a9-24d6747abfd1" alt=""><figcaption></figcaption></figure></div>

{% hint style="info" %}
Output Actions SSs incomplete
{% endhint %}

## Step 4 - Output Relaying Logic

In this Step, you can decide to put Output Filtering to filter outputs, Ordering to order output attributes in an ascending/descending order, and/or impose Limit and Offset to output node attributes.

{% hint style="info" %}
To add an Output Filter, Ordering, and/or Limit and Offset to any output node, click on the Add Buttons that will give a dropdown menu of the connected output nodes.
{% endhint %}

You can select any combination of Output Relaying Logic elements to any of the output nodes connected to suit your requirements.

### Output Filtering

Output Filtering is used to filter events at the query output based on specified conditions applied to the output node attributes. This function is versatile, accepting various types of conditions, including combinations of output node attributes, constants, and built-in functions that yield a Boolean result.

{% hint style="info" %}
[Expression Builder](/stream-processing-with-cortex/cortex-elements/expression-builder.md) can be utilized to create a filter using output node attributes.
{% endhint %}

When the Output Filtering evaluates to true, events are allowed to pass through; if it evaluates to false, the events are dropped. This feature is essential for refining the data that flows through the application based on specific criteria.

<div data-full-width="true"><figure><img src="https://1184018446-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FBUPFHdhLeYWovl0V5F9g%2Fuploads%2FerdR4rrmeZgYQIH3Gqxo%2Fnodes_processor_step4_1of7_ug.png?alt=media&amp;token=c8a020b1-0a77-4afe-ad32-4746f5448dfb" alt=""><figcaption></figcaption></figure></div>

<div data-full-width="true"><figure><img src="https://1184018446-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FBUPFHdhLeYWovl0V5F9g%2Fuploads%2F28Xzl2oRUVvo3ka7bXxL%2Fnodes_processor_step4_2of7_ug.png?alt=media&amp;token=f612de9f-418a-458b-a980-c62c5e9b3de6" alt=""><figcaption></figcaption></figure></div>

<div data-full-width="true"><figure><img src="https://1184018446-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FBUPFHdhLeYWovl0V5F9g%2Fuploads%2FZONubOwlC6FsCJU4MKvx%2Fnodes_processor_step4_3of7_ug.png?alt=media&amp;token=0c644280-84dd-4036-8550-679b83db0c2c" alt=""><figcaption></figcaption></figure></div>

### Ordering&#x20;

Ordering is used to sort output node attributes based on one or more specified attributes. It defaults to ordering the events in ascending order.&#x20;

Any Input node that incorporates a window also clusters multiple events of every attribute based on a time/quantity condition (*cf.* [Windows](/stream-processing-with-cortex/cortex-elements/windows.md)). Ordering lets you order windowed events in ascending or descending order.

{% hint style="info" %}
When input node attributes are **already** subjected to any windowing as they arrive; they can also be ordered based on one or more attributes.
{% endhint %}

* Ordering output node attributes can be done by selecting either Ascending or Descending order.
* This function is crucial for organizing query results in a structured manner, according to your specified criteria.

{% hint style="danger" %}
**BE CAREFUL**: There exists an order of **precedence** in each Ordering for the output node attributes. The **first Ordering takes precedence** before the second, the second ordering before the third, and so on.&#x20;
{% endhint %}

<div data-full-width="true"><figure><img src="https://1184018446-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FBUPFHdhLeYWovl0V5F9g%2Fuploads%2FL5O7UCA4abxZQnSO4J0e%2Fnodes_processor_step4_4of7_ug.png?alt=media&amp;token=e99950a1-fd40-4761-9d4b-409dde795083" alt=""><figcaption></figcaption></figure></div>

<div data-full-width="true"><figure><img src="https://1184018446-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FBUPFHdhLeYWovl0V5F9g%2Fuploads%2FOXSOBWuEjavabQEWo1BR%2Fnodes_processor_step4_5of7_ug.png?alt=media&amp;token=d9bb408d-0d2a-4737-b8a7-d87db501498a" alt=""><figcaption></figcaption></figure></div>

### Limit and Offset

Limiat and Offset lets you select a limited number of output events as output to be relayed to tne output node.

Any Input node that incorporates a window also clusters multiple events of every attribute based on a time/quantity condition (*cf.* [Windows](/stream-processing-with-cortex/cortex-elements/windows.md)). Limit and Offset lets you limit the number of output events and&#x20;

{% hint style="info" %}
When input node attributes are **already** subjected to any windowing as they arrive; the number of output node events can be restricted with Limit(s) and Offset(s).
{% endhint %}

* Limit allows you to specify the maximum number of events to relay to the output node.
* Offset determines the starting point in the event sequence.&#x20;

{% hint style="success" %}
You can only impose a Limit condition. You need not to set a complementing Offset condition to every Limit condition.
{% endhint %}

***e.g.*** For a Limit = 3 and Offset = 8 condition; only 9th, 10th, an 11th events will be relayed to the output node.

***e.g.*** For a sole Limit = 10 condition, only 10 events will be relayed to the output node.&#x20;

This feature is useful for managing and manipulating data chunks produced by queries, enabling more controlled and specific data processing and analysis.

<div data-full-width="true"><figure><img src="https://1184018446-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FBUPFHdhLeYWovl0V5F9g%2Fuploads%2Fog8yS2TsrHbaLlKCQCSp%2Fnodes_processor_step4_6of7_ug.png?alt=media&amp;token=ea8f72f7-870d-44f6-a342-7497cfa4f3d2" alt=""><figcaption></figcaption></figure></div>

<div data-full-width="true"><figure><img src="https://1184018446-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FBUPFHdhLeYWovl0V5F9g%2Fuploads%2FjSu7c9TuNBQxa9S0vwgl%2Fnodes_processor_step4_7of7_ug.png?alt=media&amp;token=c5fdeefd-8b34-43c4-9ac2-2737a098134c" alt=""><figcaption></figcaption></figure></div>

## Step 5 - Output Rate Limiting

In this Step, you can decide to put Output Rate Limiting to control the frequency of events to be relayed to the output node. This limitation can be based on time or a specified number of events. The mechanism for selecting which output events are sent from the query is determined by the

{% hint style="info" %}
To add an Output Rate Limiting to any output node, click on the Add Rate Limiting button that will give a dropdown menu of the connected output nodes.
{% endhint %}

You can select only one type of Rate Limiting for each connected output node.&#x20;

{% hint style="danger" %}
**BE CAREFUL**: Output Rate Limiting essentially defines how the events will be sent **together** to the output node.
{% endhint %}

### Output Rate Limiting and Output Event Selection

Three different types of Output Rate Limiting are directly correlated with the Output Event Selection. Before delving into details of Output Event Selection, we first present you the three types of Output Rate Limiting.&#x20;

<table><thead><tr><th width="256">Output Rate Limiting Type</th><th>Description</th></tr></thead><tbody><tr><td>Time Based</td><td>Outputs events together according to the <em>Output Event Selection</em> within every Time Interval.</td></tr><tr><td>Event Based</td><td>Outputs events together according to the <em>Output Event Selection</em> for every Event Count.</td></tr><tr><td>Snapshot Based</td><td>Outputs all events together already windowed for every given Time Interval.</td></tr></tbody></table>

Output Event Selection determines which events events will be **sent together** to the output nodes.&#x20;

<table><thead><tr><th width="258">Output Event Selection Type</th><th>Description</th></tr></thead><tbody><tr><td>First</td><td>Outputs together the very first event(s) in the specified Time Interval or Event Count is emitted.</td></tr><tr><td>Last </td><td>Outputs together only last event(s) in the specified Time Interval or Event Count is emitted.</td></tr><tr><td>All</td><td>Outputs together all events within the Time Interval or Event Count.</td></tr></tbody></table>

### i. Time Based Output Rate Limiting

Time Based Output Rate Limiting requires a Time Interval and relays events to the output node.

<table><thead><tr><th width="258">Output Event Selection Type</th><th>Description</th></tr></thead><tbody><tr><td>First</td><td>Outputs only the very first event in the specified Time Interval.</td></tr><tr><td>Last </td><td>Outputs only the last event in the specified Time Interval.</td></tr><tr><td>All</td><td>Outputs <strong>together</strong> all events within the Time Interval.</td></tr></tbody></table>

### &#x20;ii. Event Count Based Output Rate Limiting

Count Based Based Output Rate Limiting requires an Event Count and relays **that many** events to the output node.

<table><thead><tr><th width="258">Output Event Selection Type</th><th>Description</th></tr></thead><tbody><tr><td>First</td><td>Outputs <strong>together</strong> the very first events as many as the Event Count. (<em>Iff Event Count is bigger than 1</em>)</td></tr><tr><td>Last </td><td>Outputs <strong>together</strong> only the last events as many as the Event Count. (<em>Iff Event Count is bigger than 1</em>)</td></tr><tr><td>All</td><td><p>Outputs <strong>together</strong> all events as many as the Event Count. </p><p>(<em>Iff Event Count is bigger than 1</em>)</p></td></tr></tbody></table>

### iii. Snapshot Based Output Rate Limiting

Snapshot Based Output Rate Limiting requires a Time Interval and can be applied to attributes from an input node that incorporates a window. Any input node that incorporates a window also clusters multiple events of every attribute based on a time/quantity condition (*cf.* [Windows](/stream-processing-with-cortex/cortex-elements/windows.md)).&#x20;

{% hint style="info" %}
Snpashot Based Output Rate Limiting is only applicable if the input attributes are **already-windowed**.
{% endhint %}

<table><thead><tr><th width="258">Output Event Selection Type</th><th>Description</th></tr></thead><tbody><tr><td>First</td><td>Outputs only the <strong>already-windowed</strong> very first event in the specified Time Interval </td></tr><tr><td>Last </td><td>Outputs only the <strong>already-windowed</strong> last event in the specified Time Interval.</td></tr><tr><td>All</td><td>Outputs <strong>together</strong> all <strong>already-windowed</strong> events within the Time Interval.</td></tr></tbody></table>

<div data-full-width="true"><figure><img src="https://1184018446-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FBUPFHdhLeYWovl0V5F9g%2Fuploads%2F6rd0O8ggBjI7WXLOpJsC%2Fnodes_processor_step5_1of4_ug.png?alt=media&amp;token=5ba90b52-7db6-4cdd-948d-751f2d83ad53" alt=""><figcaption></figcaption></figure></div>

<div data-full-width="true"><figure><img src="https://1184018446-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FBUPFHdhLeYWovl0V5F9g%2Fuploads%2FZz2xoKxJivWwJYAveVWh%2Fnodes_processor_step5_2of4_ug.png?alt=media&amp;token=7de0c582-fe32-4a5e-a1c0-77291195a69e" alt=""><figcaption></figcaption></figure></div>

<div data-full-width="true"><figure><img src="https://1184018446-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FBUPFHdhLeYWovl0V5F9g%2Fuploads%2FdUKnqoyFhLrNgJLUdd7b%2Fnodes_processor_step5_3of4_ug.png?alt=media&amp;token=37e966f7-bd5d-4aad-a78f-e847b6de707e" alt=""><figcaption></figcaption></figure></div>

<div data-full-width="true"><figure><img src="https://1184018446-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FBUPFHdhLeYWovl0V5F9g%2Fuploads%2F2kA7KLlIWNSaW1WxtRBZ%2Fnodes_processor_step5_4of4_ug.png?alt=media&amp;token=6185997e-ad46-48ed-8514-1ef95cb590af" alt=""><figcaption></figcaption></figure></div>

{% hint style="info" %}
Snapshot-based Rate Limiting SS incomplete
{% endhint %}

## Step 6 - Preview

In Preview Step, you're provided with a concise summary of all the changes you've made to the Processor Node. This step is pivotal for reviewing and ensuring that your configurations are as intended before completing node setup.

* **Viewing Configurations**: Preview Step presents a consolidated view of your node setup.
* **Saving and Exiting**: Use the Complete button to save your changes and exit the node and return back to Canvas.
* **Revisions**: Use the Back button to return to any Step of modify node setup.

The Preview Step offers a user-friendly summary to manage and finalize node settings in Cortex.&#x20;

<div data-full-width="true"><figure><img src="https://1184018446-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FBUPFHdhLeYWovl0V5F9g%2Fuploads%2Fn0G2S6M86koStL3dsF7Y%2Fnodes_processor_step6_ug.png?alt=media&amp;token=23a67ccf-dee0-4077-a976-b98111ca1d74" alt=""><figcaption></figcaption></figure></div>
