5 services in production, polling every 7 seconds, with the interval set from measured feed latency
State saved per event, so a restart resumes where it stopped instead of replaying
An override map for when the provider renames teams or players
Output held until delivery is confirmed, so no alert goes out twice
Containerised, deployable on the client's own server