Floxide Core Concepts¶
This section covers the fundamental building blocks of the Floxide framework.
Understanding these concepts is essential for building robust and efficient workflows.
Key Components¶
- Node: The basic unit of work in a workflow. Represents a single step or task. (See Node Concept)
- Workflow: Defines the overall structure, connecting Nodes together in a directed graph. (See Workflow Concept)
- Transition: The outcome of a Node's execution, determining the next step. (See Transition Concept)
- Context (
WorkflowCtx
): Shared data or state accessible throughout a workflow run. (See Context Concept) - Macros (
node!
,workflow!
): Declarative macros for defining Nodes and Workflows easily.
Distributed Execution¶
While the concepts above form the basis of any Floxide workflow, the framework provides additional components specifically designed for running workflows across multiple processes or machines:
WorkQueue
: A shared queue where pending tasks (WorkItem
s) are placed. IndependentDistributedWorker
processes pick up tasks from this queue.CheckpointStore
: Stores the state (Checkpoint
) of ongoing workflow runs, including the sharedContext
and the remaining tasks in theWorkQueue
. This enables fault tolerance and recovery.DistributedWorker
: A separate process responsible for dequeuingWorkItem
s, loading the correspondingCheckpoint
, executing theNode
, saving the updatedCheckpoint
, and enqueuing successorWorkItem
s.DistributedOrchestrator
: Manages the overall lifecycle of distributed runs, providing an API to start, monitor, pause, resume, and cancel workflows. It often interacts with various Distributed Stores (likeRunInfoStore
,MetricsStore
,ErrorStore
) for observability.
These components work together to enable scalable and resilient workflow execution. You can learn more about them in the Distributed Tutorial.
Further details on each core concept will be added here.