Rally
A real-time match companion. You follow the game play by play, make predictions for fun, and climb the leaderboard. The first demo runs on a replayable match: France vs Australia, 2019 FIBA World Cup.
The product
No streaming, just the essentials of the game live and something to play with. The idea: turn a passive viewer into an active player, no money, just for fun.
the architecture
Real time, cleanly distributed.
Static front served from the CDN, event-driven AWS backend. At the core is an event-sourced engine: every game action is an event, and the whole state (score, stats, leaderboard) is derived from the sequence of events. The data source is decoupled, so moving from replay to real time never touches the business logic.
Engine written in pure TypeScript, tested outside AWS. We'll swap the data source for the WebSocket without rewriting the logic.
V1 playable, already live.
The demo runs on a fixed France vs Australia match, which decouples it from any sports API. Next: a real live data source, player accounts, and more badges. It's a playground to push real-time architecture and AWS in real conditions.