Collaborative Code Editor
Real-time collaborative code editor featuring conflict-free CRDT synchronization, Docker-isolated multi-language code execution runners, and Redis-backed room state.
System Overview
Modern engineering teams require frictionless real-time pairing environments that don't sacrifice security when running user-submitted code. This platform integrates conflict-free replicated data types with an isolated containerized job queue execution engine.
Collaborative text editors typically suffer from keystroke latency, out-of-order packet collisions, and race conditions. Furthermore, executing arbitrary untrusted code on shared servers presents critical denial-of-service and system breakout risks.
Integrated Yjs CRDTs over a Socket.IO WebSocket transport with Redis pub/sub room state (2-hour TTL). Decoupled the code runner into BullMQ worker queues delegating execution to ephemeral, resource-constrained Docker containers with dead-letter failure handling.
Key Technical Capabilities
- ✓Conflict-Free Replicated Data Type (Yjs CRDT) syncing text changes with zero merge conflicts.
- ✓Tested with 5+ concurrent active editors per room with instant keystroke synchronization.
- ✓Redis-backed distributed room state and session persistence with a 2-hour TTL.
- ✓Compound-indexed MongoDB schema for workspace history, permissions, and audit logs.
- ✓Async code execution engine supporting C++, Java, Python, and JavaScript.
- ✓BullMQ job queues with automatic retry logic and dead-letter queues for failed executions.
- ✓Sandboxed Docker execution runners enforcing strict memory limits and CPU execution timeouts.
- ✓Secure JWT authentication, OAuth 2.0 integration, and granular Role-Based Access Control (RBAC).
Hard Problems Tackled
Optimizing WebSocket frame serialization to keep keystroke latency under 40ms across 5+ concurrent editors.
Hardening Docker sandbox environments against fork bombs, memory starvation, and infinite loops without inflating cold-start run times.
Delivered zero document divergence across stress test sessions, sub-100ms execution dispatch, and completely isolated code sandboxes.