Tutorial: Floxide, an easy distributed workflow engine¶
Floxide is a workflow engine for Rust designed to make building and running distributed task sequences easy. Think of it like a digital assembly line where different steps (Nodes) can run on different computers. It uses a central WorkQueue to assign tasks to Workers and Checkpointing to recover from failures, making your workflows scalable and fault-tolerant. An Orchestrator manages starting, stopping, and monitoring these distributed runs.
Source Repository: None
flowchart TD
    A0["Node Trait & node! Macro"]
    A1["Workflow Trait & workflow! Macro"]
    A2["Transition Enum"]
    A3["WorkflowCtx & Context Trait"]
    A4["Checkpoint & CheckpointStore Trait"]
    A5["WorkQueue Trait"]
    A6["DistributedWorker"]
    A7["DistributedOrchestrator"]
    A8["Distributed Stores (RunInfoStore, MetricsStore, ErrorStore, LivenessStore, WorkItemStateStore)"]
    A9["RetryPolicy & RetryNode"]
    A1 -- "Contains / Defines Flow Bet..." --> A0
    A0 -- "Returns Outcome As" --> A2
    A0 -- "Uses Shared Context" --> A3
    A9 -- "Wraps Node For Retries" --> A0
    A1 -- "Uses Workflow Context" --> A3
    A1 -- "Uses For Distributed State" --> A4
    A1 -- "Uses For Distributed Steps" --> A5
    A6 -- "Executes Workflow Step" --> A1
    A6 -- "Dequeues/Enqueues Work Items" --> A5
    A6 -- "Loads/Saves Checkpoints" --> A4
    A6 -- "Updates Run State/Metrics" --> A8
    A7 -- "Starts Distributed Run" --> A1
    A7 -- "Manages Run via Queue" --> A5
    A7 -- "Manages Run via Checkpoints" --> A4
    A7 -- "Queries Run State/Metrics" --> A8
    A1 -- "Applies Retry Policy (via m..." --> A9
    A9 -- "Uses Context for Delay" --> A3
Chapters¶
- TransitionEnum
- NodeTrait &- node!Macro
- WorkflowCtx&- ContextTrait
- WorkflowTrait &- workflow!Macro
- WorkQueueTrait
- Checkpoint&- CheckpointStoreTrait
- DistributedWorker
- DistributedOrchestrator
- Distributed Stores (RunInfoStore,MetricsStore,ErrorStore,LivenessStore,WorkItemStateStore)
- RetryPolicy&- RetryNode