Rally
Un companion de match en temps réel. Tu suis le jeu coup par coup, tu fais des pronostics pour le fun, et tu grimpes au classement. La première démo tourne sur un match rejouable : France-Australie, Coupe du monde FIBA 2019.
Le produit
Pas de streaming, juste l'essentiel du match en direct et de quoi jouer avec. L'idée : transformer un spectateur passif en joueur actif, sans argent, juste pour le fun.
l'architecture
Du temps réel, proprement distribué.
Front statique servi par le CDN, backend AWS event-driven, avec deux mécaniques temps réel. Une horloge partagée, dérivée d'un anchor serveur, fait voir à tous les visiteurs la même seconde du match. Et un WebSocket relaie en direct la présence des joueurs et leurs pronostics, sans que le serveur ne calcule le moindre score : chaque client dérive le même classement de son côté, au bit près, bots déterministes compris. Si l'anchor ne répond pas, fallback gracieux sur un replay local : le site ne casse jamais.
Moteur event-sourced en TypeScript pur, bots semés et classement dérivé au bit près côté client, sans aucun scoring serveur. Infra en SAM (IaC, eu-west-3), WebSocket en prod. Prochaine étape : durcir la validation des pronostics côté serveur, puis migrer vers CDK.
V1 complète, en ligne.
La V1 tourne sur un match figé France-Australie, ce qui la découple de toute API sportive. Tout est déjà là : horloge partagée, présence des joueurs en direct, et un classement multijoueur où chacun voit le même résultat. La suite : une vraie source de données sportive, des comptes joueurs et plus de badges. C'est mon terrain de jeu pour pousser le temps réel et AWS en conditions réelles.