Incident Management Platform · View 18 of 34 · 4 · Data
Decisions
- The event log is PostgreSQL with no UPDATE or DELETE privilege for any application role, a trigger that refuses both, and a per-incident hash chain. A seven-year append-only table is well within what PostgreSQL does routinely; a dedicated event store would be one more database to restore under pressure (ADR-08).
- Merge, split, detach and every correction are events. A merged incident keeps its original timeline, and 'what did we believe at 03:14' is answered by replaying to 03:14.
- Projections are disposable. The operational store can be dropped and rebuilt from the log, and the quarterly drill does exactly that, timed.
Targets
- Event log RPO ≤ 5 s. Projection rebuild ≤ 60 minutes, tested quarterly. Outbound events at-least-once, with the event id as the consumer's idempotency key.
Risks
- Ordering by platform receive time across three cells depends on disciplined clocks. Each cell runs chrony against its own time sources, and events carry cell and sequence so ties and small skews order deterministically.