Message-driven processes
Not every step in a process is a task sitting in one person's inbox. Often a process needs to pause and wait for something to happen to a record, and let whoever is working with that record decide what happens next.
A workflow can pause at an event-based gateway, which waits for one of several named signals rather than for a single assigned task. While it waits, wasabi registers durable subscriptions tied to that specific run of the process, correlated by the execution, the document it concerns, or a key you define. Nothing is lost if the process waits for minutes or months.
Those pending signals surface as actions on the document itself. Anyone with access, subject to permissions, can act, and doing so publishes the matching signal and resumes the waiting process down the corresponding path. Actions like these can also be declared up front in a browser's detail view, and can either send a signal to a running process or start a brand-new workflow.
# on a browser's item view: two ways to advance the process
item:
actions:
approve: { label: Approve, message: approve }
reject: { label: Reject, message: reject, confirm: true }The effect is that processes move forward by acting on the business object, independently of any single user's inbox. This mirrors how approvals, fulfilment, and other real-world state machines actually work: the record carries its available next steps, and the process reacts to them. wasabi correlates each signal precisely rather than guessing, and once one path is taken the alternative options are retired.