Enabling real time collaboration with RSocket
summary
Canva moves real‑time collaboration from many sockets per service to a single gateway using RSocket multiplexed channels, reducing client connections to one per user while backends use few shared connections. Implementation uses RSocket Java on Netty with Project Reactor/Flowable on the server and RSocket JS with backpressure-aware adapters on the frontend. Key operational wins are per-channel backpressure that prevents gateway collapse, a service registry for direct backend connections, and jittered exponential reconnects for smooth rollouts.
AI-written summary · about
chapters (18)
- 0:00Introduction and context
- 1:27Real-time collaboration needs
- 3:13Protocols for real-time
- 5:00WebSocket limitations
- 6:03RSocket multiplexing
- 7:27Reactive streams with RSocket
- 9:52Back pressure benefits
- 11:55RSocket Java implementation
- 13:43Project Reactor benefits
- 14:46Frontend integration challenges
- 15:51Back pressure strategies
- 16:34Client reconnection handling
- 18:01Load balancing challenges
- 20:51Service registry solution
- 21:55Load balancing algorithms
- 22:41Gateway scaling considerations
- 24:05Redeployment strategies
- 26:16Conclusion and takeaways
related talks
42mRSocket - Future Reactive Application Protocol
01h 01mThe RSocket Protocol — The Future of Reactive Applications
01h 52m100% Fast and Resilient Microservice with RSocket
40mRSocket as a Wire Protocol
28mGetting Started With RSocket
53mMultiplayer Pac-Man with RSocket
45mKeeping it Real(time)
45mReactive web services
