📄️ Executing Logic
Workflows4s supports two ways of embedding custom logic within a workflow:
📄️ Awaiting Signals
Signal handling is essential for workflows that need to pause and wait for external events before proceeding. This operation allows workflows to respond to user actions, system notifications, or other asynchronous events, making it ideal for human-in-the-loop processes or integration with external systems.
📄️ Awaiting Time
Timers are crucial for workflows that need to introduce delays, implement timeouts, or schedule future actions.
📄️ Sequencing Operations
Sequencing operations form the backbone of workflow composition, allowing you to define the order in which steps are executed. These operations enable you to build complex workflows by combining simpler ones, ensuring that each step completes before the next begins.
📄️ Handling Errors
Error handling is critical for building robust workflows that can handle non-happy paths. It allows for short-circuiting operations
📄️ Loops
Loops are essential for workflows that need to repeat actions until a condition is met. This operation enables iterative processing, such as retrying operations, processing collections of items, or implementing polling mechanisms that continue until specific criteria are satisfied.
📄️ Conditional Branching
Fork operations enable workflows to select a branch based on a criteria.
📄️ Interrupting Execution
Interruption operations are crucial for workflows that need to respond to cancellation requests or timeout conditions.
📄️ Parallel Flows
WIO.Parallel allows running multiple branches simultaneously, enabling scenarios such as waiting for a mix of signals and timers without enforcing a particular order.
📄️ Embedding Sub-Workflows
Embedding one workflow in another is supported but not documented yet.
📄️ Iterating Over Elements
The forEach operation enables workflows to process collections of elements by executing a sub-workflow for each element in parallel.
📄️ Checkpointing and Recovery
Elements described below are used primarily for evolving workflows, see the dedicated docs for details.
📄️ Retrying Operations
Retries enable workflows