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 (WorkItems) are placed. Independent DistributedWorker processes pick up tasks from this queue.
  • CheckpointStore: Stores the state (Checkpoint) of ongoing workflow runs, including the shared Context and the remaining tasks in the WorkQueue. This enables fault tolerance and recovery.
  • DistributedWorker: A separate process responsible for dequeuing WorkItems, loading the corresponding Checkpoint, executing the Node, saving the updated Checkpoint, and enqueuing successor WorkItems.
  • 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 (like RunInfoStore, 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.