Library / Case Studies
Cinchcast Architecture - Producing 1,500 Hours of Audio Every Day - High Scalability -
This is a guest post by Dr. Aleksandr Yampolskiy , CTO of Cinchcast and BlogTalkRadio , wher...
By High Scalability engineers · High Scalability · Added 2026-10-12
All content belongs to High Scalability engineers / High Scalability. We only link to it and give credit. Report a problem
Learn this case study
About 37 min left. Your work is saved as you go.
What you are about to study
High Scalability explains a real system. You should know the basics: caching, queues and replication.
Ideas you will meet
- Distributed Systems
- Consensus, time, failure and the fundamentals of scale-out.
What we already know about this
Our own lessons on these ideas. Read them here before you start, so it makes sense.
Real-World Systems · 12 minDesign collaborative editing (Google Docs)Several people edit one document at once and always end up seeing the same text: operational transformation, CRDTs, and the server that keeps order.Read here
The problem
A shared document where several people type at once. Requirements:
- Everyone sees changes within a fraction of a second.
- All copies converge to the same text, whatever order edits arrive in.
- Typing feels instant, even on a slow network.
- History, undo, comments, cursors and permissions work.
- A document can be edited offline and merged later.
Why it is hard
Two people start with
AB. Alice insertsXat position 0. Bob, at the same moment, deletesBat position 1. If each applies the other's operation as received, Alice ends withXA(correct), while Bob who already deletedBand then insertsXat 0 getsXAtoo in this case, but with other edits the positions drift and copies diverge. The problem: a position means "where in the text as I saw it", and other people's edits change what that is.Two families of solutions
Operational transformation (OT)
A server puts all operations in one order. When your operation arrives and others were applied in between, the server transforms it (adjusts its position) so it still means what you intended. Used by classic Google Docs. Needs a central authority per document.
CRDTs (conflict-free replicated data types)
Give every character a unique identifier and a position between its neighbours' identifiers (not a numeric index). Operations then commute: applying them in any order yields the same result. No central referee is needed, which suits peer-to-peer and offline use. The cost is metadata per character and more complex data structures. Libraries such as Yjs and Automerge implement this.
OT CRDT Central server required to order operations optional Offline editing harder natural Metadata little more (ids, tombstones) Maturity in products very mature fast-growing A simpler third option: differential synchronisation
Instead of transforming individual operations, each side keeps a shadow copy of the last agreed text, computes the diff between its current text and the shadow, sends that diff, and the other side patches its own text with it. It is easy to build and tolerant of lost messages, but merges are fuzzier than OT or CRDTs, so it suits notes and forms better than a heavy, many-author document.
Architecture
100%Figure SDA-RWS-01-1 · Collaborative editing architecture · © forcsguy.com
- The editor applies your keystroke locally at once and sends the operation over a WebSocket.
- All editors of one document connect (through a gateway) to one collaboration server for that document, found by consistent hashing on the document id. One owner makes ordering simple.
- The server orders and transforms the operation, assigns a revision number, appends it to a durable operation log, and broadcasts it to the other editors.
- Editors that were behind apply the missed operations, using the revision numbers.
- Periodic snapshots of the document mean you do not replay the whole log to open it.
Presence and cursors
Cursor positions and "who is here" change constantly and need not be stored. Send them as ephemeral messages through the same server or a pub/sub channel, and expire them if heartbeats stop.
Storage and scale
- Operation log plus snapshots: the log gives history and undo; snapshots keep loading fast. Compact old logs.
- Documents are independent, so partition by document id and scale out. The hot spot is one very popular document; limit the number of simultaneous editors or fall back to read-only viewers.
- Permissions are checked on connect and on every operation.
Failure handling
- If the collaboration server dies, another loads the latest snapshot plus the log and clients reconnect and resend unacknowledged operations (they are tagged, so duplicates are ignored).
- Clients keep a queue of unsent operations so a dropped connection loses nothing.
- Autosave means there is no "save" button, because the log is the save.
More on this site
Related reading
- Cannes: ML saves $1.7M a year on document previews at DropboxDropbox engineers · DropboxCase Studies
- The Log-Structured Merge-Tree (paper)O'Neil et al. · UMass BostonPapers
- Espresso: Distributed Document Store at LinkedInLinkedIn engineers · LinkedInCase Studies
- Vortex: Monitoring Server Applications at DropboxDropbox engineers · DropboxCase Studies
Show 6 moreShow fewer
- LISA '10 - Operations at Twitter: Scaling Beyond 100 Million UsersYouTubeYouTube
- Determinism (4 parts) in League of Legends ServerRiotgames engineers · RiotgamesCase Studies
- Automating Datacenter Operations at DropboxDropbox engineers · DropboxCase Studies
- Netflix Guide to Microservices - Josh Evans, Director of Operations Engineering at NetflixNetflixYouTube
- Cinchcast Architecture - Producing 1,500 Hours of Audio Every Day - High Scalability -High Scalability engineers · High ScalabilityCase Studies
- GitLab BlogGitLab engineers · GitLabBlogs
Go deeper on this
A path through videos, articles, other case studies and code on the same ideas as Cinchcast Architecture - Producing 1,500 Hours of Audio Every Day - High Scalability -.
Warm upGet the vocabulary first.
Books · Free from the author
Concurrent and Distributed Systems (Cambridge lecture notes)
Eight lectures on time, broadcast, replication, consensus and transactions, with notes, slides and video. Free from the author under CC BY-SA.
University of CambridgeIntermediate
Books · Free from the author
Computer Networks: A Systems Approach
How networks are built and why: protocols, routing, congestion control and the internet's architecture. The authors publish it free online under CC BY 4.0.
Systems ApproachIntermediate
WatchHow others solve the same problem, on video.
Videos belong to their creators and play from YouTube. More on YouTube (opens in a new tab)
ReadEngineers explain it in their own words.
Blogs · Free from the author · Read here
Scalable Web Architecture and Distributed Systems
A full chapter on the building blocks of large websites: availability, performance, reliability, scalability, caches, proxies, indexes, load balancers and queues. Free to read here under CC BY 3.0.
The Architecture of Open Source ApplicationsBeginner40 min
Papers · Read here
Facebook’s photo storage
This paper describes Haystack, an object storage system optimized for Facebook’s Photos application. Facebook currently stores over 260 billion images, which translates to over 20 petabytes of data.
USENIXIntermediate
See it in another companyThe same ideas, a different system.
Case Studies · Read here
Aroma: Using ML for Code Recommendation at Facebook
Thousands of engineers write the code to create our apps, which serve billions of people worldwide. This is no trivial task—our services have grown so diverse and complex that the codebase contains…
FacebookIntermediate
Case Studies · Read here
Brooklin: Distributed Service for Near Real-Time Data Streaming at LinkedIn
Brooklin—a distributed service for streaming data in near real-time and at scale—has been running in production at LinkedIn since 2016, powering thousands of data streams and over 2 trillion messages per day. Today, w...
LinkedInIntermediate
Read the codeSee how it looks when it is real.
GitHub
Engineering Blogs
A huge directory of company engineering blogs to learn from real production systems.
kilimchoiIntermediate
GitHub
Awesome Scalability
Curated reading list of articles on the architecture of scalable, reliable systems.
binhnguyennusIntermediate
Keep learning
Loading community…