Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.twine.se/llms.txt

Use this file to discover all available pages before exploring further.

Twine has two node-graph engines that share the same underlying model and editor but solve different problems. Both let you describe behaviour by connecting typed nodes into a directed acyclic graph; the difference is what flows between the nodes and whether side effects are allowed.

Data Engine

The Data Engine is a pure transformation engine. Graphs describe how a value is derived from other values - mapping a source field into Twine, computing a derived property, producing the final value sent to a target system. Nodes do not call external systems, write logs, or mutate state; each one simply transforms its inputs into its outputs. Values flowing through a Data Engine graph are dated properties, which carry the time dimension Twine uses throughout its data model. The Data Engine is the successor to Twine’s legacy graph engine and is where all new property-mapping work should happen. Existing customer configurations still use the graph engine in production today.

Data Engine

Deep-dive into nodes, ports, and graph execution.

Flow Engine

The Flow Engine is an orchestration engine. A flow is a saved graph that describes a process - read data from source systems, transform it, write to target systems, branch on conditions, loop over collections, log what happened. Where the Data Engine is pure computation, the Flow Engine is meant for side effects. A flow run records its status, logs, and a snapshot of selected named values from the run. Flows can be triggered manually, on a cron schedule, or as a dry run for validation. Inside a flow, smaller Data Engine graphs are used wherever a value needs to be transformed - for example, to build a payload for a step or to compute a branch condition.

Flow Engine

Deep-dive into flows, steps, and the run lifecycle.

When to use which

Use the Data Engine when:
  • You are configuring a property mapping and need to derive a value from one or more source properties.
  • You are writing a condition that filters entities based on computed criteria.
  • You need a pure value transformation with no side effects.
Use the Flow Engine when:
  • You need to orchestrate a process across one or more systems - fetch from A, transform, write to B.
  • You need scheduled or recurring work with a visible run history and logs.
  • The work involves side effects that a transformation engine cannot express.
Every flow embeds Data Engine graphs for the transformation bits, so the two engines are often used together rather than one or the other.