From Google Docs to Figma: OT vs CRDT Trade-offs
π Frontend System Design Essentials β Course: https://icodeit.thinkific.com/courses/frontend-system-design-essentials π Frontend System Design Essentials β Book: https://leanpub.com/frontend-system-design-essentials/ Tools like Google Docs and Figma make multi-user editing feel effortless, but underneath is a hard distributed problem: concurrent changes can arrive in different orders and still must converge to one consistent state. This episode walks through state divergence with a simple string example, then Operational Transformation (OT) with a coordinating server, then CRDTs as an approach where operations are designed to commute so order matters less. We close with how these choices show up in real system designβcentralized control vs offline-first and peer-to-peer-friendly models. OT and CRDT both attack the same failure modeβconcurrent edits that would otherwise mean different things depending on orderβbut they place complexity in different parts of the system: transformation logic and ordering on the server versus data structure design and metadata on the replicas. Knowing that split helps you design collaborative features that match your topology (classic client-server vs local-first / P2P). π MY BOOKS & COURSES π Frontend System Design Essentials (Course): https://icodeit.thinkific.com/courses/frontend-system-design-essentials π Frontend System Design Essentials (Book): https://leanpub.com/frontend-system-design-essentials/ π React Anti-Patterns (Amazon): https://www.amazon.com/dp/1805123971 π More Tutorials on Advanced Patterns: https://icodeit.com.au/tutorials/advanced-network-patterns-react π© STAY CONNECTED π§ Newsletter (system design & clean code): https://juntao.substack.com π Website & Blog: https://icodeit.com.au π¦ Twitter / X: http://twitter.com/JuntaoQiu πΊ YouTube (subscribe): https://www.youtube.com/@icodeit.juntao π¬ Question for You Have you shipped or integrated real-time collaboration (custom OT/CRDT, or a library)? What part was hardestβcorrectness, performance, or offline behavior? Hashtags #frontend #systemdesign #crdts #OperationalTransformation #realtimecollaboration #distributedsystems #softwarearchitecture