# Streaming Engine

## Workflows - the easy way

Helmut4 is driven by a specially crafted streaming engine, visualized in the [Stream Designer](/helmut4-releases/helmut4-components/streamdesigner.md) as a node-based workflow editor.

This "low-code" approach enables users to quickly dive into Helmut4 and create [their own workflows](/helmut4-releases/getting-started/overview/helmut4-modules.md).

With over 36 [conditions](/helmut4-releases/helmut4-components/streamdesigner/nodes/conditions.md), 259 [actions](/helmut4-releases/helmut4-components/streamdesigner/nodes/actions.md), and 7 [output](/helmut4-releases/helmut4-components/streamdesigner/nodes/outputs.md) nodes, users have the flexibility to construct any desired workflow.

Each node concludes with a true/success or false/fail path, enabling the adaptation of the workflow and the creation of fail-case conditions without requiring a master's degree in programming.

<figure><img src="/files/Vu9Y28h692WtSsrrrvnH" alt=""><figcaption><p>Example stream in stream designer</p></figcaption></figure>

### Stream Execution and Timeouts

By default, every stream has a maximum runtime of **60 seconds**. This limit is intended to stop streams that may have entered a hanging state or are simply taking too long to complete.

This timeout can significantly affect **FX streams**, as it may cause stream and job information to be collected only partially. As a result, project datasets may be incomplete.

For **IO, CO, and HK streams**, the execution time can be extended beyond the default limit. For details, refer to the following node: [Split Stream Action](/helmut4-releases/helmut4-components/streamdesigner/nodes/actions/misc-21/split-stream-action.md) Node

***

### Stream Host Assignment

Streams can generally be assigned to either the **client** (the local machine, such as Windows or macOS) or the **server** (**Helmut4 Server**).

For **FX streams**, using the **server** as the primary host assignment is recommended. This is especially useful in environments where network permissions restrict normal users from accessing certain resources.

For **IO, CO, and HK streams**, the **client** should always be used. The client host can be defined either in the **profile** or through the [Job Create Job Action](/helmut4-releases/helmut4-components/streamdesigner/nodes/actions/job-action/job-create-job-action.md) node.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.helmut.de/helmut4-releases/helmut4-components/streams.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
