01~/projects/tubesync· real-time systems
TubeSync
Watch YouTube together, in perfect sync.
A watch-party service where the server, not the clients, owns playback state. Every play, pause and seek goes through Spring over STOMP and fans out to the room. Clients correct their own drift.
- Server-authoritative playback with client-side drift correction
- Role-based permissions enforced on the server, not trusted from the UI
- Reconnect handling and automatic host handover when a host drops
- Persistent chat and room state in PostgreSQL
how it works · request trace
Next.js client
player · chat
- ↓ STOMP / WebSocket
Spring Boot room service
state · roles · handover
- ↓ JDBC
PostgreSQL
rooms · chat history
