Skip to main content

Crate mocra_dag

Crate mocra_dag 

Source
Expand description

mocra-dag: a general-purpose distributed DAG execution engine (extracted from the main mocra crate, with zero crawler coupling).

  • Dag / DagChainBuilder: graph construction (nodes + dependency edges, topological validation, cycle detection).
  • DagScheduler: layered concurrent execution, retry policies, and a distributed run guard protected by fencing.
  • Node dispatch is injected through the DagNodeDispatcher abstraction (with a built-in LocalNodeDispatcher; the host can supply its own).
  • Runtime dependencies are injected through traits (DagStore / DagEventSink / DagFencingStore); the host implements them with the embedded cluster KV / distributed pub-sub, so this crate does not depend back on the host.

Re-exports§

pub use store::DagEventSink;
pub use store::DagStore;
pub use types::DagError;
pub use types::DagErrorClass;
pub use types::DagErrorCode;
pub use types::DagFencingStore;
pub use types::DagNodeDispatcher;
pub use types::DagNodeExecutionPolicy;
pub use types::DagNodeRecord;
pub use types::DagNodeRetryMode;
pub use types::DagNodeStatus;
pub use types::DagNodeSyncState;
pub use types::DagNodeTrait;
pub use types::DagRunGuard;
pub use types::DagRunGuardAcquireOutcome;
pub use types::DagRunResumeState;
pub use types::DagRunStateStore;
pub use types::LocalNodeDispatcher;
pub use types::NodeExecutionContext;
pub use types::NodePlacement;
pub use types::TaskPayload;

Modules§

store
Abstract traits for dag’s runtime dependencies — the host crate injects the implementations, so that mocra-dag does not depend back on the host.
types

Structs§

Dag
DagChainBuilder
DagExecutionReport
DagScheduler
DagSchedulerOptions
NodeExecutionResult

Type Aliases§

DagNodePtr