Audit Log Service · View 30 of 40 · 6 · Operations
Decisions
- Active-passive, not active-active. Two regions sealing independently would need a cross-region ordering claim the requirement never asks for, and would double the surface on which a chain can fork.
- Replication is one way and the destination grants no delete right. Segments arrive already under a locked policy at the destination, so a replica is not a softer copy of a hard original.
- A failover changes which region seals; it changes nothing about what has been sealed. The chain resumes in the second region from the last head the ledger holds — and the ledger is in neither region's subscription.
Recovery targets
- RTO 15 minutes for ingest, 4 hours for query. The asymmetry is deliberate: accepting events is the promise, finding them quickly is a service level.
- RPO 0 for acknowledged events. Segment durability 11 nines annual with continuous cross-region replication.
- Buffer state replicates via MirrorMaker 2 within the 72 h window; the index replica is convenience, since the index is rebuildable anyway.
Risks
- MirrorMaker introduces its own lag, so a hard region loss can strand events acknowledged in the final seconds before failure. Meeting RPO 0 strictly requires the producer to hold its spool until a seal receipt is available — which is exactly why the two-stage receipt exists, and why fail-closed classes should poll for it.