Leaderboard & Counting Service · View 07 of 21 · Structure
Decisions
- Processing sits below Service deliberately. Nothing in the request path waits on aggregation, projection or the season closer; the only synchronous dependency of an accepted write is the event log.
- State is one layer but five stores with three different recovery stories — log, projections, cache — and the layer diagram is the first place that split is visible.
- The rebuild runner is a first-class component in the Processing layer, not a runbook.
Reading the layers
- Edge carries everything a counting event must survive before it is believed: TLS, token, signature, rate limit, bot score.
- Platform holds what the architecture needs but the product never calls: identity, keys, observability, export.
Deliberately omitted
- Every observability edge, which would otherwise touch all six layers and tell the reader nothing.
- The tenant console's own API surface, shown on view 09.