Expand description
§flusso-daemon
The flusso daemon — the supervisor around the engine. Owns the domain (pipeline + observable state); owns no transport.
§Owns vs doesn’t
| Owns (domain) | Does not own (the binary’s) |
|---|---|
building the pluggable parts from a Config | the HTTP surface |
running the engine | process signals |
a StatusObserver → shared Status | the telemetry exporter |
| polling source lag out of band | the metrics recording itself |
It is telemetry-agnostic: it depends only on the engine’s Observer
trait, not on any metrics backend. The CLI installs a meter provider, attaches
its own metrics observer via Daemon::with_observer, reads the Status
handle this exposes, serves it, and drives shutdown:
CLI ── install meter provider ─▶ Daemon::start ──▶ RunningDaemon
│ │ .status() ─▶ Arc<Status> (CLI serves it)
└── shutdown future (signals) ─▶ RunningDaemon::run(shutdown)ℹ️ Info — keeping transport in the binary is what lets the daemon stay a pure library: a different host (a test, an embedder) can drive the same pipeline and read the same
Statuswithout dragging in an HTTP server or a metrics exporter.
Re-exports§
pub use status::IndexState;pub use status::Phase;pub use status::Status;pub use status::StatusSnapshot;
Modules§
- status
- The live operational state of a running daemon.
Structs§
- Batch
Stats - What one committed batch did — reported to
Observer::on_batch_committed. - Daemon
- A configured-but-not-yet-running sync daemon over one
Config. - Daemon
Options - How a
Daemonrun is parameterized — the pipeline knobs the CLI exposes as flags. Transport settings (HTTP address, …) are the binary’s concern, not the daemon’s, so they are not here. - Index
Name - Running
Daemon - A built sync daemon, ready to run. Exposes its live
Statusso a transport the binary owns can serve it concurrently with the run. - Source
Parts - A source capture paired with the document builder over the same source.
- Status
Observer - Updates the shared
Statusas the engine reports lifecycle and progress. Cheap and non-blocking, per theObserverhot-path contract.