Back to Portfolio

Zynkora: Scaling Real-Time Collaboration

Next.jsSpring BootWebSocket

The Challenge

Modern SaaS collaboration tools require instantaneous updates. Transitioning a standard CRUD application into a real-time, project-scoped collaborative platform introduces massive complexities around state synchronization, user presence, and connection scaling. The core goal was to build a system where multiple clients could interact on Kanban workflows simultaneously without data collisions or high latency.

System Architecture

React Client
REST API (Spring)
WebSocket
Database

Stateless API + Stateful WebSockets

Separating standard RESTful resource fetching from real-time mutation streams permitted horizontal scaling of the API layer independently of the WebSocket brokers.

Optimistic UI Updates

Clients anticipate success for mutations, updating the UI instantly and reconciling state with the server via WebSocket fallbacks upon acknowledgment.

Impact & Takeaways

  • Consistency Under LoadLeveraged appropriate locking and transaction isolation levels in the database to prevent race conditions during concurrent sprint updates.
  • Network ResilienceImplemented robust reconnection logic using SockJS, ensuring immediate state recovery when clients reconnect.
Review Source Code