Expand description
Topology mode (issues #71 / #72): build and run a
faucet_core::Topology from a config’s pipeline.nodes / edges block.
When pipeline.nodes is non-empty the pipeline runs as an explicit node
graph rather than a matrix. This module resolves each node’s connector
templates, compiles its transforms, wires the edges, and drives the core
topology executor — reusing crate::registry for connector construction
and crate::state / crate::executor::build_dlq_config for the
sink-side plumbing.
Structs§
- Node
Identity - Identity of one source/sink node, captured while the graph is built.
- Topology
RunOptions - Per-run knobs for topology mode, mirroring the matrix path’s
crate::executor::ExecuteOptionssubset that applies to a node graph.
Functions§
- build_
topology - Build a
faucet_core::Topologyfrom the config’spipeline.nodes/edgesblock, with default run options (no preview, process-start clock). - build_
topology_ meta build_topology_withthat also reports each source/sink node’s identity.- build_
topology_ with - Build a
faucet_core::Topology, honouring the run options. - inert_
blocks - Top-level blocks that topology mode parses but does not act on.
- is_
topology - Whether the config selects topology mode (a non-empty
pipeline.nodes). - preview
- Preview topology mode: build each
sourcenode and print the firstlimitrecords per source to stdout as JSON Lines. - preview_
records - Collect a bounded preview of each
sourcenode’s records (source side only; downstream nodes are not run). Returns(node_id, records)per source node, in sorted node-id order. - preview_
to_ string - Preview topology sources into a JSON string (for the MCP
previewtool). - reaching_
sources - For each sink node, the source nodes that reach it, in deterministic order.
- run_
topology - Build and run the topology, returning a
RunSummaryshaped like a matrix run (one invocation per sink node, plus one per node failure underon_error: continue). - validate_
topology_ spec - Config-level graph validation: the checks that need only the
nodes:/edges:spec, no connectors. Run as a fail-fast prelude tobuild_topology(so a wiring typo is reported before any client is constructed) and standalone by the template registry, which validates a config it must not build connectors for (#444).
Type Aliases§
- Node
Identities - Per-node identities, keyed by node id. Only source and sink nodes appear.