Six Step System Design Templates for Engineers That Translate to ADRs

Use this system design template: a timeboxed six-step interview cadence paired with a compact ADR-style decision record you can state out loud and then save to source control. Software engineers preparing for interviews get consistent coverage of every layer of a system. Engineers writing design docs get a decision trail that survives the next code review, the next hire, and the next outage postmortem.
TL;DR:
- Using a six-layer system design template helps ensure all components are addressed according to scale, data flow, and operational needs within a structured cadence.
- Clarifying questions and assumptions before sketching reduces common mistakes like over-focusing on familiar parts or missing critical constraints.
- An effective answer combines estimations, core API definitions, high-level architecture, and deep dives into specific trade-offs, recorded consistently as ADRs for future reference.
- Practicing the cadence under timed conditions and maintaining source-controlled ADRs bridges interview performance and real-world system documentation.
- Prioritizing clarifying questions and trade-off statements over diagram polish prevents common failure modes and builds a habit of thorough, disciplined thinking.
Table of Contents
- What Should a System Design Template Actually Cover?
- How Do You Time a 45-Minute System Design Interview?
- What Goes Into an ADR-Style Documentation Template?
- What Should a One-Page Interview Answer Sheet Include?
- How Does the Template Work for a URL Shortener?
- Why Templates Are Scaffolding, Not a Script
- The Template Only Works If You Actually Use It Under Pressure
- Practice the Six-Step Template Until It Feels Automatic
- Where to Go Deeper on Templates and Standards
- Sources
- FAQ
What Should a System Design Template Actually Cover?
A system design template is not a script. It is a checklist that tells you which layers to address and in what order, so you never freeze staring at a blank whiteboard or blank doc. The HLD Handbook frames this exactly right: templates fix the order of thinking rather than hand you a pre-written answer; that distinction is the whole point of using one.
Think of your coverage in six layers. Each layer has a handful of fields you fill in, whether you're speaking them to an interviewer or typing them into a design doc.
- Edge layer: load balancers, CDN, API gateway, rate limiting.
- Service layer: core services, their responsibilities, and how they talk to each other.
- Data layer: primary data stores, cache placement, partitioning approach.
- Async pipeline: queues, event streams, background workers.
- Ops and observability: logging, metrics, tracing, alerting thresholds.
- SLOs and rollout: latency and availability targets, deployment and rollback plan.
Within each layer, a handful of fields need a one-line answer. Assumptions first: state your scale target out loud ("Assume 10 million daily active users, 2,000 write QPS at peak"). Then API endpoints: name your two or three core routes and sketch a request and response shape ("Primary API: POST /create, request has long_url and optional custom_alias, response returns short_code and expires_at"). Follow with a data model summary, a cache plan (what you cache, for how long, and why), a partitioning plan (by user ID, by geography, by hash range), a consistency model (strong versus eventual, and where each applies), failure modes (what happens when a downstream service times out), your SLO targets, and a rollout and rollback plan.
One detail candidates skip constantly: separate functional requirements from quality targets. A system that "shortens URLs" is a functional requirement. "99.9% availability with p99 latency under 100ms" is a quality target, and naming a concrete number for it forces real design decisions instead of vague hand waving about "making it fast."
Pro Tip: Write your six layers on a sticky note before any mock interview. Glance at it every time you feel yourself drifting into one component for too long. It costs you five seconds and saves you from the single most common failure mode: over-indexing on the part you know best while ignoring the four you haven't mentioned yet.
How Do You Time a 45-Minute System Design Interview?
A six-step, minute-sliced cadence keeps you and your interviewer synced instead of drifting into a 20-minute monologue about one caching strategy. This structure is a widely recommended pacing model for standard 45-minute sessions, and it maps directly onto the template layers above.
- Clarify (5 to 10 minutes). Ask three to five targeted questions that would genuinely change your architecture: read-heavy or write-heavy? Global users or single-region? Strong consistency required anywhere? Skipping this step is the single costliest mistake a candidate can make.
- Estimate (5 minutes). Run the back-of-envelope math. Convert daily active users to queries per second, estimate storage per object, and round using powers-of-two approximations rather than exact arithmetic. If you're told 10 million daily active users each hitting the service twice, that's roughly 230 QPS average, likely 3 to 5x that at peak.
- API (5 minutes). Define your two or three core endpoints and show one full request and response shape. This grounds the rest of the conversation in something concrete instead of abstract boxes.
- High-level architecture (15 minutes). Sketch the flow from edge to services to data store. Name the hot path explicitly: "Reads hit the cache first; on a miss, we fall through to the primary store and repopulate the cache."
- Deep dive (10 minutes). Pick one or two components and show real trade-offs. This is where interviewers are judging you, not the boxes-and-arrows diagram.
- Wrap (5 minutes). State your trade-offs plainly, name what you'd do with more time, and mention that you'd record this as a decision record.
A large share of failed system design interviews trace back to one habit: jumping straight to a diagram before asking clarifying questions. Force the cadence. Say the checkpoint out loud: "Before I sketch anything, let me confirm three assumptions." That single sentence signals structure to an interviewer faster than any diagram will.
What Goes Into an ADR-Style Documentation Template?
Interview answers evaporate the moment the session ends. Design docs don't, which is why the same structure you speak in an interview should map onto an Architecture Decision Record you can commit to source control. MADR and similar ADR templates converge on the same core fields, and Google Cloud's own guidance says an ADR should be stored in source control alongside the code and phrased in imperative language so future readers see not just what was decided but why.
| ADR field | What you write there |
|---|---|
| ID and title | A short unique identifier and a one-line summary of the decision |
| Context/problem | The forces at play: scale, constraints, why a decision is needed now |
| Decision drivers | The two or three factors that actually swayed the choice |
| Considered options | Alternatives you evaluated, even briefly |
| Decision | Stated in imperative form: "We use X because Y" |
| Consequences | Trade-offs, follow-up work, and what becomes harder as a result |
| Date and authors | For traceability |
| Links | Related design docs, tickets, or prior ADRs |
Beyond the ADR itself, your architecture description benefits from the same discipline that ISO/IEC/IEEE 42010 requires: declared viewpoints, views that address specific stakeholder concerns, and a brief traceability matrix connecting requirements to design decisions. The standard sets content requirements, not a rigid ordering, so you have room to adapt the format to a one-page doc without losing rigor.
Three habits keep this practical instead of bureaucratic:
- Store ADRs in the same repository as the code they affect, not in a separate wiki nobody opens.
- Link each ADR from the design doc section it justifies, so a reader can trace "why" without a search.
- Keep each ADR under a page. A four-page ADR gets skipped; a half-page one gets read.
What Should a One-Page Interview Answer Sheet Include?
A one-page answer sheet reduces the odds you forget a critical trade-off mid-interview, and it works because it's action-focused rather than written in full sentences. Treat it as a set of fill-in-the-blank prompts you glance at, not a script you read from.
| Section | What to jot down in the moment |
|---|---|
| Clarifying questions | Read/write ratio, region scope, consistency needs, peak load |
| Estimation shortcuts | DAU × actions/day = QPS; bytes per object × object count = storage |
| API skeleton | 2 to 3 endpoints, one full request/response example |
| Diagram skeleton | Edge → services → cache → primary store → async workers |
| Deep-dive hints | Partitioning key, cache invalidation, failure mode for hot path |
| Trade-offs to voice | Consistency vs. latency, cost vs. redundancy, simplicity vs. flexibility |
For the estimation shortcuts specifically, lean on powers-of-two approximations and known latency and storage rules of thumb rather than trying to do exact math under pressure. A rough number said confidently beats a precise number that takes ninety seconds to calculate.
- Keep every entry to a phrase, not a sentence: "consistency: eventual for reads, strong for writes" beats a paragraph explaining why.
- Practice glancing at the sheet for two seconds, then speaking without reading it verbatim. The sheet is a memory jog, not a teleprompter, and reading verbatim breaks the conversational rhythm interviewers expect.
How Does the Template Work for a URL Shortener?
Applying the full template to a concrete problem shows how the pieces connect faster than any abstract explanation. Take the classic system design interview prompt: design a URL shortener.
- Clarify. Ask: custom aliases needed? Expected read-to-write ratio? Any need for click analytics? Assume the interviewer confirms a heavy read skew, roughly 100 reads for every 1 write, no custom aliases required for the base case.
- Estimate. Assume 100 million new URLs per month and a 100:1 read/write ratio. That's roughly 40 write QPS and 4,000 read QPS at peak, with each stored record averaging around 500 bytes, putting storage growth at roughly 50GB per month before replication.
- API. Define
POST /shorten(request:long_url, response:short_code) andGET /{short_code}(redirects to the original URL). - High-level design. Edge cache and CDN in front, a stateless service layer, a key-value store as primary data store, and a cache layer absorbing the read-heavy hot path.
- Deep dive: key generation. Three real options exist: pre-generated pools, counter plus base62 encoding, or hash-and-truncate. A pre-generated pool approach issues ranges of codes to service instances in advance, avoiding per-request coordination, while a 7-character base62 code space is large enough to avoid collisions at this scale for years.
An ADR entry for that decision might read: "We use a pre-generated key pool distributed to service instances, rather than real-time counter coordination, because it removes a shared-state bottleneck on the write path. Consequence: requires a background job to replenish pools and monitor exhaustion."
Why Templates Are Scaffolding, Not a Script

Templates work because they force a consistent starting order, not because they hand you a memorized answer. The HLD Handbook's framing holds up under scrutiny: the value is in fixing your sequence of thinking, so you clarify before you sketch, and you estimate before you commit to a data store. The System Architecture Design guide describes the strongest interview answers as a guided tour: baseline, boundaries, hot path, evolution, then failure behavior and metrics. That's a narrative structure layered on top of the same six-step cadence.
Two habits separate practitioners who use templates well from those who don't. First, they store ADRs in source control next to the code, not in a slide deck nobody revisits. Second, they resist the urge to draw a diagram before the clarifying questions are answered, even when the problem sounds familiar.
The best interview templates align what you say aloud with what you later document as an ADR. The spoken decision should map to a short recorded ADR, not diverge from it.
Pro Tip: If you're rehearsing solo, record yourself narrating the six-step cadence out loud, then write the ADR for your own deep-dive decision immediately afterward. If the two don't match, your spoken reasoning was probably vaguer than you thought.
The Template Only Works If You Actually Use It Under Pressure
Most advice about system design interviews treats the six-step cadence and the ADR format as separate worlds: one for whiteboard performance, one for engineering paperwork. That split is the conventional wisdom's biggest blind spot. Treat the two as one continuous habit, and your interview prep starts doing double duty as documentation practice you'll use for the rest of your career.

The overrated part of most prep advice is diagram polish. Interviewers rarely fail candidates for an ugly box-and-arrow sketch. They fail candidates who never asked a clarifying question, or who couldn't state a trade-off plainly. Prioritize the clarify step and the wrap-up trade-off statement over visual precision.
What should you do differently starting today? Pick one system, run the full six-step cadence against it with a timer, then immediately write the ADR for whatever deep-dive decision you made. Do that five times and the cadence stops feeling like a script you're reciting. It starts feeling like how you naturally think through a problem, which is exactly the point.
— Soumyajit
Practice the Six-Step Template Until It Feels Automatic
Reading a template is one thing. Performing it under a countdown timer with someone judging your answer is another. Simulated mock interviews can let you run the full six-step cadence, clarify through wrap, with real-time AI scoring on each phase to understand whether clarifying questions actually would have changed your architecture or just burned time.

The platform's adaptive study plans flag which layer of the template you consistently skip, whether that's SLOs, failure modes, or the trade-off statement at the wrap. You can log decisions and revisit past sessions through the interview archive the same way you'd revisit an ADR history, building a personal record of what you decided and why across dozens of practice rounds. Pair that with the Roadmap Editor to schedule timed sessions across the weeks before your interview instead of cramming the night before.
InterviewForge's Basic plan is free to start at InterviewForge, with Monthly access at $4.99, Yearly at $39.99, or a one-time Lifetime plan at $99.99 on the pricing page once you're ready for full readiness tracking and adaptive plans.
Where to Go Deeper on Templates and Standards
For the six-step interview cadence and minute allocations, the HLD Handbook is the clearest primary source. For ADR fields and format, the MADR/ADR GitHub repository and Google Cloud's architecture decision records guide both give practical, source-control-ready formats. For standards-level rigor on architecture descriptions, the ISO/IEC/IEEE 42010 template sets the content requirements engineering teams increasingly get asked to follow. The system design checklist repository offers additional worked checklist items if you want more granularity per layer.
Sources
- How to Approach a System Design Question - The HLD Handbook
- Architecture description template for use with ISO/IEC/IEEE 42010:2011
- System Architecture Design: The Complete Guide 2026
- Architecture decision records - Google Cloud
FAQ
How Do You Create a System Design From Scratch?
Start by clarifying requirements and scale targets before drawing anything, then move through estimation, API definition, high-level architecture, a deep dive on one or two components, and a closing trade-off summary. This six-step cadence works for both interview answers and early-stage design docs.
What Are the Most Common System Design Patterns?
Recurring patterns include load balancing, caching, database sharding and partitioning, message queues for async processing, read replicas, rate limiting, the circuit breaker pattern, and the CQRS pattern for separating reads from writes. Most system design interviews test whether you can combine three or four of these correctly rather than list all of them.
What Are the Four Pillars of System Design?
Definitions vary across sources, but a common grouping covers scalability, reliability, availability, and maintainability, each backed by a concrete numeric target rather than a vague goal. Naming an actual number, like 99.9% availability or sub-100ms p99 latency, is what turns a pillar into a real design constraint.
What Are the Main Types of System Design?
Practitioners typically distinguish high-level design (HLD), which covers overall architecture, components, and data flow, from low-level design (LLD), which covers class structures, algorithms, and detailed module logic. Interview questions almost always target high-level design within a 45-minute window.
Does InterviewForge Include System Design Practice?
Yes. InterviewForge offers simulated system design interview sessions with real-time AI scoring and feedback, letting you rehearse the six-step cadence and get gap analysis on which layers you tend to skip. Plans start with a free Basic tier, with paid options detailed on the pricing page.