Graph Executor
The graph-execution seam (CLOACI-T-0722).
Mirrors the task-side TaskExecutor trait: when a reactor fires, it hands
the firing to a [GraphExecutor] instead of calling the compiled graph
closure directly. The default [InProcessGraphExecutor] preserves today’s
behavior exactly; cloacina-server’s fleet executor ships the firing (the
InputCache snapshot + the CG package digest) to an execution agent and
awaits the result — accumulators and reactor state stay host-side, only
the compute leaves.
Every [GraphFireEvent] carries the compiled in-process closure, so a
fleet executor can ALWAYS fall back to local execution (no agent capacity,
unresolvable package, dispatch timeout) rather than wedging the reactor’s
hot path.
pub
One reactor firing, ready to execute somewhere.
| Name | Type | Description |
|---|---|---|
graph_name |
String |
The graph (== reactor) name — the fleet executor resolves the owning |
| package (and artifact digest) from it at fire time. | ||
tenant_id |
Option < String > |
Tenant scope for agent selection; None for untagged graphs. |
snapshot |
InputCache |
The input snapshot the graph consumes. |
in_process |
CompiledGraphFn |
The compiled in-process closure — the default execution AND the |
| universal fallback for remote executors. |
pub
Derives: Default
Default executor: run the compiled graph closure in this process — byte-for-byte the pre-seam behavior.
pub
fn in_process_graph_executor () -> Arc < dyn GraphExecutor >
The shared default used when nothing is injected.
Source
pub fn in_process_graph_executor() -> Arc<dyn GraphExecutor> {
Arc::new(InProcessGraphExecutor)
}