decision
Storage and coordination
The Cache database, event store, QuestDB catalog, Redis projections, and cold files each have one explicit authority.
- Question
- Which state belongs in which system, and how is it recovered?
- Binding decision
- No persistence mechanism silently substitutes for another; Anthera Redis loss is correctness-neutral and QuestDB commits are explicit.
- Owner input
- Partition size, retention, cache byte budget, and cold-tier activation depend on measured workload and cost.
Scroll horizontally to inspect the full decision ledger.
| Candidate | Decision | Owned role | Activation evidence |
|---|---|---|---|
| QuestDB | Adopt | Authoritative bulk hot market history | Exact Nautilus-value round trip and outage matrix |
| Nautilus event store | Conditional | State-affecting run history and replay order | Crash, snapshot, verification, and live-recovery proof |
| Nautilus Cache database | Conditional | Selected engine-state restart projection | Prove supported types and rebuild semantics |
| Anthera Redis | Adopt | Rebuildable service projection and coordination | Deletion must be correctness-neutral |
| Parquet / Vortex | Later | Catalog and immutable cold history | Activate from measured retention and query evidence |
Three durable histories
QuestDB stores bulk Quote, Trade, and Bar history. The event store records ordered state-affecting history and joins market context through ReplayCatalog. The optional Cache database backs selected engine projections. These roles never collapse into one database.
- A bounded QuestDB projection writer exposes batch visibility and continuous coverage.
- Event-store sequence remains the authority for trading-state replay order.
- Cache capacity and cache-database support do not define infinite market history.
EvidenceOfficial Cache and Event Sourcing docs; frozen persistence, event-store, and infrastructure source.
Service projections remain disposable
Anthera Redis stores versioned pages, current values, coalescing, leases, fencing, and bounded shared replay. It is distinct from Nautilus's cache adapter and can be rebuilt from QuestDB. Parquet is the proven Nautilus catalog/cold format; Vortex competes only after a measured trigger.
- No XRANGE occurs for every delivered viewer event.
- Follower waits and replay retention are bounded.
- Vortex competes with Parquet only after a retention-cost trigger.
EvidenceExecPlan Phases 3 and 7.
mise x -- task storage:shadow-diffAcceptance target: Coverage, counts, hashes, and watermarks match frozen fixtures.