System Design at Adobe
- See why Adobe design leans on general primitives plus one collaborative-editor anchor
- Understand why the round is level-gated and pragmatic, and how it sets your level more than it gates the hire
- Map the four worked designs to the shape each one drills
Adobe's most recurring design prompt is a thread-safe configurable cache. It's an LRU or LFU store where the eviction policy is passed in at construction, and many threads read and write it at once. That prompt tells you what the round is made of. Most of what Adobe asks is general-purpose primitives: caches, file systems, typeahead, rate limiters. The bar is practical. Adobe wants a correct, clean design you can defend, and it weights that over scaling a product to a billion users.
The round is level-gated. New-grad and early-career loops usually skip system design and stay on coding and CS fundamentals. It enters the loop around the Computer Scientist level and grows from there. Senior candidates get a full design round, and Staff and above can get two. The level you land at often turns on this round, since the architecture conversation is where an otherwise strong loop gets down-leveled.
The shapes Adobe reaches for
Adobe design prompts cluster into four shapes, and the worked designs in this section take one each. Real-time collaboration is the domain anchor, co-editing a document the way Acrobat and Document Cloud do. A media and asset pipeline is the Creative Cloud shape, moving a large file from upload to a viewer's screen. Search and ranking covers typeahead with top-k. A distributed primitive covers the rate limiter. Three of the four are general-purpose, which matches what the round asks, and the collaborative editor is where Adobe's own domain shows up.
| Shape | Worked design | Why it fits Adobe |
|---|---|---|
| Real-time collaboration | Design a Collaborative Document Editor | The domain anchor. Acrobat and Document Cloud style co-editing: a document model, sync over WebSockets, conflict resolution through operational transform or a CRDT, and an undo and redo stack. The one Adobe-domain shape with a genuinely reported tie, the editor undo history. |
| Media and asset pipeline | Design a Digital Asset Manager | The Creative Cloud shape. Upload a large image or video, transcode and process it, store the bytes, deliver them through a CDN near the viewer, and index the metadata so assets are searchable. |
| Search and ranking | Design Typeahead with Top-K | A reported generic shape. Autocomplete backed by a trie for prefixes and a heap for the best completions, ranked by popularity and kept fresh. |
| Distributed primitive | Design a Rate Limiter | A reported generic primitive. A token or leaky bucket enforcing a request quota across many nodes, the kind of throttling that protects an API at platform scale. |
The four designs in this guide
Start with the collaborative document editor. It is the signature shape and the place where Adobe's domain knowledge counts, so it earns the lead. The other three are general-purpose primitives that the round asks just as often, each isolating a different axis.
Design a Collaborative Document Editor
The domain anchor and the signature. Several people edit one document at once, the way Acrobat and Document Cloud allow. You model the document, sync changes over WebSockets, resolve conflicts with operational transform or a CRDT so concurrent edits merge cleanly, and keep an undo and redo stack correct under all of it. Where Adobe's product domain shows up.
Design a Digital Asset Manager
The Creative Cloud media pipeline. A user uploads a large image or video. The system processes and transcodes it, stores the bytes in object storage, serves them through a CDN near the viewer, and indexes the metadata so assets are searchable. Upload, process, store, deliver, and search, end to end.
Design Typeahead with Top-K
Search and ranking. As a user types, return the best few completions ranked by popularity, backed by a trie for prefixes and a heap for the top-k. The deep dives are how you keep the lookup fast and how you keep the rankings fresh as popularity shifts.
Design a Rate Limiter
A distributed primitive. Enforce a request quota across many nodes with a token or leaky bucket, and keep the shared counters consistent enough without a round trip per request. Degrade gracefully when the limiter's store slows down.
The framework Adobe rewards
Requirements, entities, and API
Open by pinning requirements: what is in scope, what the throughput and latency targets are, and what you are deliberately leaving out. Nothing exotic about the arc, and that is the point. Spell out the read-versus-write skew, since a typeahead feed and a document-edit stream pull in opposite directions and the design lives on the heavy side. Put real numbers on the scale before you draw a single box.
From there, name the entities and write the API. Call out the objects the system turns on: a document and its edit operations, an asset and its renditions, a suggestion, a token bucket. Then write the interface as concrete endpoints you keep referring back to. On the collaborative editor this is also where you decide what an edit operation looks like on the wire, because everything downstream, sync and conflict resolution and undo, depends on that shape.
High-level design, then deep dives
Sketch the high-level topology next, walking one requirement at a time and naming the bottleneck you are punting at each step. Then go deep where the interviewer points, because the deep dives are the round. A clear high-level pass with one genuinely deep component beats a tour of six shallow ones. For the editor, that depth goes to conflict resolution and the undo stack. The asset pipeline drills transcoding and delivery, typeahead drills ranking and freshness, and the rate limiter comes down to the shared counter under concurrency.
What a strong pass does
- Pins down scope, the read-versus-write skew, and the latency and correctness targets before drawing any boxes
- Leads the collaborative editor with a clear conflict-resolution choice and defends operational transform against a CRDT for this document model
- Goes deep on the one component that decides the design: conflict resolution, transcoding, ranking, or the shared counter
- Names a real failure and the mechanism: a lost edit recovered from the operation log, a thundering herd on a popular prefix absorbed by a cache
- Reasons cleanly under concurrency, since Adobe folds thread-safety into design as readily as into code
What lands off-target
- Starts naming components with no requirements and no scale numbers
- Reaches for a product clone when the prompt is a plain primitive like a cache or a rate limiter
- Acknowledges a flaw, then waves it away without the mechanism that fixes it
- Tours six components shallowly while conflict resolution or the hot counter goes unaddressed
- Drops a term like CRDT or token bucket and cannot unpack it when pushed
Key Takeaways
- ✓Adobe system design is mostly general-purpose primitives: caches, file systems, typeahead, and rate limiters. The one product-flavored shape is a real-time collaborative document editor, which is the domain anchor and the signature.
- ✓The round is level-gated. New-grad loops usually skip it, it enters around the Computer Scientist level, and senior and Staff loops get more design. The level you land at often turns on this round.
- ✓The bar is practical and humane. About forty-five to sixty minutes, a collaborative interviewer, and a clean defensible design over a sprawling buzzword tour. The round often blurs into low-level design, so be ready to reason about concurrency in code.
- ✓Four worked designs cover four distinct shapes. The anchor is a collaborative document editor (real-time co-editing). The others are a digital asset manager (a Creative Cloud media pipeline), typeahead with top-k (search and ranking), and a rate limiter (a distributed primitive). The winning arc is requirements, then entities and API, then high-level design, then deep dives.
Adobe interview guideKnow what Adobe asks before you walk in.
20 coding · 4 system design · 22 behavioral questions
Get their questions first.
InterviewLegend is independent and not affiliated with or endorsed by any company it covers.