Skip to content

Gateways

Current Status (ECA 2.x)

Important: Gateways are not fully implemented in ECA 2.x, this is a work in progress (WiP). The current implementation provides basic functionality but lacks proper BPMN gateway logic.

Current Behaviour

  • Multiple outgoing links: All paths are processed sequentially in the order they were added;
  • Multiple incoming links: Each incoming link processes everything after the gateway independently;
  • No exclusive logic: Despite being labelled "exclusive gateway" or "x-gateway", a gateway currently behaves like an inclusive gateway;
  • Optional condition handling: Each outgoing path can have explicit conditions, a path without conditions defaults to TRUE and is therefore always open;

How Gateways Currently Work

Sequential Processing

1
2
3
Event/Action → Gateway → [Path 1] → Actions
                       → [Path 2] → Actions  
                       → [Path 3] → Actions

All paths execute in sequence, not based on conditions.

Multiple Inputs

When multiple paths flow into a gateway, each arrival triggers separate processing of all subsequent actions.

Current Use Cases

1. Flow Merging

Combine multiple event flows into a single processing path:

1
2
3
4
Event A → [Specific prep] ↘
Event B → [Specific prep] → Gateway → [Common processing]
Event C → [Specific prep] ↗
Event D → [Specific prep] ↗

Note: In the above model, [Common processing] will potentially get executed 4 times if all 4 events are triggered.

2. Action Chaining (Alternative to AND Task)

Gateways can be used instead of AND tasks for chaining actions when there's only one successor:

1
Action → Gateway → Next Action

Note: This is equivalent to using an AND task but quicker to implement.

3. Conditional Branching (Manual Implementation)

For true conditional logic, you must add explicit conditions to each outgoing path:

1
2
Action → Gateway → [Condition: field > 0] → Path A
                 → [Condition: field ≤ 0] → Path B