The challenge
Deliver a credible realtime product under take-home constraints: multiple clients must share one authoritative match clock, handle late joins and disconnects, and stay correct without a database or a heavy REST surface. Polling would break the sync contract; the architecture had to show intentional Socket.io design.


