Rebuild current state from recorded facts.
An AllSource projection folds one tenant's immutable event history into a queryable read model. Query Service builds a new generation away from active reads, switches it in after completion, then keeps it current from live events.
Projection lifecycle
- 01
Enable
Choose a supported projection template for one tenant.
- 02
Backfill
Fold immutable Core events into a shadow generation.
- 03
Switch
Make completed generation active without exposing partial state.
- 04
Follow
Apply new accepted events and broadcast state updates.
- 05
Rebuild
Repeat from history after logic changes or recovery.
Building
Backfill runs against a fixed cutoff while active readers continue using previous generation.
Ready
Completed state becomes active as one generation, avoiding half-built read results.
Live
New events fold into enabled projections and publish entity-state updates over channels.
Why rebuild instead of migrate rows?
Source events keep original history. When read logic changes, a new projection can fold that history again and switch generations after verification. Projection state remains disposable; Core remains source of truth.