Skip to main content

Channels for communication

Why you need it

Flows need durable messages from the outside world and between concurrent Steps.

Code examples

Choose an SDK (preference is sticky in this browser; default Python).

unblock = Channel("unblock", str)

def wait_for(self, context, input):
return Wait.any_of(self.unblock.for_one())

Define Channels on the Flow; wait with channel.for_one() / for_n; publish from RPC or another Step.

How Dex implements it

Channel messages are persisted. Waiting Steps subscribe via Conditions; PublishToChannel completes matching waits.

Traditional workarounds

Workarounds: Kafka topics + consumer offsets + correlation IDs, or DB outboxes polled by workers.