Documentation
¶
Overview ¶
Package composition is the ADR-0019 S4 composition root (endgame P4): the ONE place tq's runtime meets go-cqrs-lite's system/ package. It builds system.New over a durable sqlite engine at the projection home (<db>.readmodel.db) with an EMPTY domain BY DESIGN — the queue engine's fact journal IS the journal since S2, so system's own event adapter stays unused (no second source of truth; the split-brain gate of the archived composition map §3).
What the System owns here (the map's sanctioned shape):
- the projection-home engine (deployment decision, one DeploymentConfig place: swap sqlite -> postgres by editing Engines, never domain code);
- close ordering for the surfaces that adopt it (GracefulClose after the runactor actors stop — serve today, per §4c "adopt per surface");
- the growth seam: timers (§4a ruled: sweeper ticking STAYS runactor until a genuinely timer-shaped feature lands), deciders, and system.Lookup/metaengine query declarations attach to THIS root.
What it deliberately does NOT own: the tq queue.Store (S1's thin-driver seam, injected as today), the worker claim loops, the sweepers, and the readmodel's fold projector (a tq-side projection over the QUEUE journal; its collections live on the same projection-home file through their own metaengine Plan).
Index ¶
Constants ¶
const DefaultEngineName = "projections"
DefaultEngineName is the projection-home engine's deployment name.
Variables ¶
This section is empty.
Functions ¶
Types ¶
This section is empty.