What does CAP actually trade off?
Interview flashcards.
A hundred cards across six categories — distributed systems (CAP, Paxos, Raft, CRDTs), databases (LSM, MVCC, vacuum, indexing), networking (TCP, HTTP/3, BGP, NAT), operating systems (processes, threads, mmap), system design (queues, caching, scaling), and languages (goroutines, GC, event loop). Filter by category. Spacebar to reveal, arrows to navigate, S to shuffle.
How to study with flashcards
Read the question. Try to answer aloud or in writing before revealing. The card grades itself — be honest about whether you got the key points. Cards you missed: open the deep-dive link and re-read the relevant section. The same set of cards will surface different gaps each pass; do two to three passes over a week before an interview.
This is not a spaced-repetition app (no Anki-style backend). If you want spaced repetition, export the cards to your tool of choice — the data is right at the top of /interview/concepts/+page.svelte. For most candidates with a week or two of prep time, linear passes work better than spaced repetition because the goal is broad recall, not long-term retention.
A four-pass study cadence
A pattern that works for most senior candidates. Adjust ±1 pass depending on your starting baseline.
- Pass 1 (~30 min). Linear, all sixty cards. Don't pause to read deep dives. Note the cards you fumble in a list. The goal is to see the full vocabulary in one sitting and build a study list.
- Pass 2 (1–2 hours). Just the fumbled cards. For each, open the deep dive linked under it; read it carefully. Add your own notes. By the end of this pass, you should be able to answer those cards from memory.
- Pass 3 (~20 min). Linear again, shuffle order this time. The cards you missed on pass 1 should now be fine; new gaps will surface. Update the list.
- Pass 4 (the day before). Just the cards you still get wrong. Five to ten cards usually. Re-read those deep dives one more time. Sleep well.
Topic coverage
Cards span the full distributed-systems vocabulary that comes up in senior interviews:
- CAP & consistency — CAP, PACELC, linearizability, serializability, snapshot isolation. deep dive →
- Consensus — FLP impossibility, Paxos, Raft, PBFT, Byzantine fault tolerance. deep dive →
- Time & clocks — Lamport timestamps, vector clocks, HLC, TrueTime. deep dive →
- CRDTs — state-based vs op-based, semilattices, OR-Sets, LWW-Registers. CRDTs paper →
- Quorums & replication — R+W>N, leader vs multi-leader vs leaderless, read-your-writes. deep dive →
- 2PC, sagas, idempotency — why 2PC blocks, when to use sagas, the outbox pattern. deep dive →
- Sharding & load balancing — consistent hashing, Maglev, rendezvous hashing, hot shards. deep dive →
- Tail latency & resilience — Little's Law, hedged requests, retry storms, circuit breakers. Tail-at-scale paper →
- Failure detection & gossip — phi-accrual, SWIM, leader election. deep dive →
- Storage internals — B-tree vs LSM, WAL, MVCC, vacuum. B-tree → · LSM → · WAL → · MVCC →
- OS internals — epoll, io_uring, CFS, cgroups. I/O internals →
- Networking — TCP head-of-line, QUIC, TLS 1.3, L4 vs L7. networking stack →
What the cards do not cover
Behavioural questions, coding rounds, company-specific framings, low-level data-structure trivia (red-black trees, AVL rotations). Those need their own resources. For coding rounds, see the problem-solving patterns. For full system-design rounds, see the 45-minute system-design simulator. For deeper theory, read the annotated papers.
Frequently asked questions
How often will questions like these come up in an interview?
Distributed-systems concept questions show up in three places: as warm-ups in coding rounds ("what's the difference between linearizability and serializability?"), as deep dives within system-design rounds ("walk me through how Raft elects a leader"), and as standalone rounds at some companies (most notably Meta and Google for L5+). Expect at least two or three questions of this shape across a full loop.
Are these the same questions FAANG interviewers ask?
The shape is the same; we don't claim leaked content. Real interviewers tend to start broad ("tell me about CAP") and drill down into trade-offs ("when would you pick CP over AP?"). The flashcard answers are calibrated to that drill-down depth — enough detail that "I read it on a flashcard" wouldn't fly, but not so much that you couldn't memorise it.
What if I can't remember the exact numbers in an answer?
For most concepts, the qualitative answer is what gets graded — "Raft uses majority quorums to ensure overlap" is more important than "the quorum size is ⌈N/2⌉+1". Interviewers care that you understand the mechanism. Specific numbers (FLP needs at least one crash, BFT needs 3f+1, R+W>N for strong consistency) are worth memorising; finer details rarely are.
Should I do this before or after reading the deep dives?
After. The cards are meant as a recall test, not a primer. If you have not read the underlying topics (Spanner, Raft, Dynamo, CRDTs), the cards will be opaque. Start with the distributed-systems study path if you are new to these concepts.
Why no progress tracking?
Streaks and scores optimise for the wrong thing. The metric that matters is "can I answer this card cold in an interview", not "how many days in a row did I open the page". If you want streak-style tracking, paste the cards into Anki.