Module 21 · Lesson 2 of 11Free
A 45-minute interview framework
- Level
- Beginner
- Topic
- System design interviews
- Reading time
- 15 min
When you finish this page you can
- Organize a design conversation around checkpoints rather than a memorized script.
- Choose a deep dive that tests the system’s most important requirement.
- Recover lost time without skipping the request flow or failure discussion.
- Close with a clear account of decisions and unresolved risks.
Builds on 1 lesson
Start with lesson 114 minVideo lesson · coming soon
Twenty minutes into a 45-minute interview, you have drawn twelve boxes for . The interviewer asks, “What happens when checkout succeeds, but the customer never receives the response?”
You have not explained checkout yet. How do you use the remaining time to show engineering judgment rather than finish a diagram?
The answer starts before you draw: organize the conversation around evidence, then adjust the time you spend producing it.
Checkpoints matter more than minutes
A schedule can remind you to move forward. It cannot tell you whether the design makes sense.
At minute 15, you have finished requirements and estimates exactly on schedule. You still cannot say when an order becomes confirmed. Should you move straight to scaling?Show answer
Use the following schedule as a practice default. The times are this lesson’s recommendation, not an employer’s scoring system.
Diagram not drawn yet: interview-framework-checkpoints.svg
Five checkpoints in order: agree on the problem during minutes 0–5; size the important constraints during minutes 5–10; trace a working design during minutes 10–20; test its hardest decisions during minutes 20–38; summarize decisions and risks during minutes 38–45. Each checkpoint names an observable result.
| Elapsed time | Main activity | Evidence to leave behind |
|---|---|---|
| 0–5 minutes | Agree on scope | A user journey and its success conditions |
| 5–10 minutes | Estimate selectively | A number that changes a design choice |
| 10–20 minutes | Explain a working design | One complete request flow |
| 20–38 minutes | Explore depth and failures | A defended decision tested against failure |
| 38–45 minutes | Close and discuss | Decisions, limits and remaining questions |
This table assumes the design discussion gets the full period. If introductions or questions share that time, shorten the working budget first.
Actual formats differ. Atlassian’s handbook describes a 60-minute systems design , not a universal 45-minute format.2
Before starting, ask how much time is available for design and whether the interviewer has a preferred focus. Then choose how firmly to follow your schedule.
Should you follow fixed time limits or adapt as the conversation develops?
Use fixed limits for every stage.
You practice moving through every stage, but may stop useful reasoning just because a timer rings.
Use checkpoints with flexible time ranges.
You retain coverage while giving an important question more time. You must deliberately shorten something else.
Why this choice
Fixed limits help during early solo practice, especially when you repeatedly spend the whole session on requirements. In a live discussion, use the evidence column to decide whether to move.
A checkout failure may deserve extra time. A storage estimate that changes no decision does not. If the interviewer requests a specific structure, follow that structure instead.
The schedule now has a purpose. Next, you need to decide what belongs inside it.
Agree on one user journey
Use Kartly at its later-course scale: separate services, replicated data and sharded storage. You are not rebuilding the whole store.
For this practice scenario, the prompt is “Design Kartly’s checkout.” Your first task is to make that smaller:
“I’ll focus on turning a cart into a confirmed order. Should stock reservation and be included?”
Assume the interviewer says yes. Recommendations, seller onboarding and delivery routing stay outside the design.
Ask what “confirmed” promises. For this scenario, assume it means stock is reserved and payment is recorded. A pending attempt is not yet a confirmed order.
That distinction changes the design. You cannot treat a successful response from any one service as proof that checkout is complete.
Microsoft’s guidance recommends clarifying ambiguity and making a plan before implementing a solution.1 Here, the useful result is an agreed promise, not a long list of questions.
Write down:
- Journey: submit cart, complete checkout, retrieve the result.
- Must preserve: one checkout attempt must not create duplicate orders or duplicate payment authorizations.
- Allowed delay: an uncertain attempt may remain pending while its outcome is checked.
- Outside scope: product discovery and delivery assignment.
These are illustrative requirements, not facts about a real store. A different answer about pending orders would change the next stages.
The previous lesson, How design interviews are evaluated, explains the evidence behind evaluation. Here, you are arranging opportunities to show that evidence.
Once the promise is clear, estimates should help you locate pressure, not delay the design.
Estimate only what changes choices
Kartly’s later-course traffic includes about 100,000 requests a second at a festival peak. That is total traffic, not checkout traffic.
Do not quietly size payment processing for every product-page request.
Ask for the checkout share or label an assumption. If the interviewer supplies a checkout peak, use it directly. Explain what you need the number for:
“I want to distinguish pressure on order creation from pressure on browsing. Those paths need different scaling discussions.”
Then calculate only what informs the next decision. Storage might matter if order history must remain online for years. Simultaneous attempts might matter if a downstream call stays open for a long time.
You do not need every calculation in every interview. Stop when you can explain what the result changes.
For example, a traffic estimate alone cannot prove that a database will handle the workload. Query shape, contention and measured capacity remain unknown.
Say what would need measurement rather than inventing a server count. Estimation under time pressure develops that technique.
Leave this stage with a short conclusion: which path deserves capacity attention, and which uncertainty still needs testing. Now make that path work.
Trace one request before expanding
By about minute 20 in this practice schedule, aim to explain checkout from submission to a visible result.
Start with responsibilities already present in later-stage Kartly. Do not add a new component merely to fill the diagram.
| Responsibility | Question your explanation must answer |
|---|---|
| Checkout coordination | Who owns progress across the steps? |
| Order storage | Where can the customer’s attempt be found later? |
| Inventory | Who decides whether stock is reserved? |
| Payments | Who records the authorization outcome? |
Walk through one proposed sequence:
- The app submits a checkout attempt with an , identifying retries of that same attempt.
- Checkout records a pending order and associates it with the attempt.
- Checkout asks inventory to reserve stock.
- Checkout requests payment authorization.
- Checkout records confirmation only after the required outcomes are known.
- The app receives the result or retrieves the attempt’s status later.
This is a starting proposal, not a complete protocol. Stock expiry and remain unresolved. Naming those gaps gives the next stage a concrete target.
Use the diagram to support this explanation. Point to the owner of each step and name the data crossing each boundary.
If the interviewer cannot tell where a pending attempt lives, adding a will not fix the explanation. Presenting the high-level design covers that presentation in detail.
The normal path is now visible. The next choice is where to test it hardest.
Spend depth on the largest risk
Return to the opening question. Payment authorization succeeded, but the response disappeared. The customer taps again.
The tempting move is to add more infrastructure. The useful move is to inspect what the design knows about that attempt.
With limited time, should you explore catalog speed or checkout retry safety?
Explore faster catalog reads.
You can discuss a useful performance problem, but leave the agreed duplicate-payment requirement unexplained.
Explore checkout retry safety.
You test the requirement that matters to this prompt and expose missing ownership or recovery rules.
Why this choice
Catalog speed would be a reasonable focus for a browsing problem. In this scenario, a duplicate payment authorization directly violates the agreed checkout promise.
Choose retry safety unless the interviewer redirects you or changes the requirement. Explain that choice before entering the detail.
Use a short chain of questions:
- Does a retry find the existing attempt, or create another?
- Can simultaneous requests both start the same work?
- Which identifier reaches the payment boundary?
- After a , where does checkout learn the actual outcome?
- What does the customer see until that outcome is known?
Do not answer “” and move on. The key identifies intent; your design still needs rules for storing, enforcing and recovering that intent.
For this proposed design, an unresolved payment call leaves the attempt pending. A recovery process checks the payment outcome before deciding what to do next. Explain who owns that process and what happens if it also fails.
You can stop before implementation code if the mechanism is clear. The full engineering problem belongs in Design: an e-commerce checkout.
Amazon’s preparation guidance explicitly invites candidates to ask questions that complete and validate their designs.3 Use that opportunity to check whether the chosen depth is useful:
“The unresolved payment outcome is the main correctness risk. Would you like me to continue into recovery or examine inventory contention?”
Depth earns its time by answering a requirement. It should not become a second, disconnected design.
Recover time by cutting scope
Suppose you reach minute 28 with only a partial request flow. You have 17 minutes left in this practice scenario.
Do not speak faster. Reduce the remaining work.
- State where you are: “The checkout path is outlined, but confirmation and recovery need detail.”
- Name the priority: “I’ll finish that path before discussing regional expansion.”
- Complete the missing normal steps.
- Test one important failure.
- Keep a short closing period.
This is better than pretending nothing changed. It also gives the interviewer a chance to redirect you.
If a follow-up arrives early, answer the question rather than defending your schedule. Atlassian describes follow-ups that introduce different approaches or tradeoffs to assess adaptation.2
Connect the answer back to the design:
“That changes the confirmation rule. I’ll update the order flow before continuing.”
Keep a small “later” list for deferred topics. Write “reservation expiry: unresolved,” not “inventory handled.” A visible gap is more honest than a false guarantee.
The remaining time should make the design easier to judge, not merely larger.
Close with decisions and limits
Do not use the final minutes to introduce another major subsystem.
For the Kartly practice, a useful closing sounds like this:
“We scoped checkout rather than the whole store. Confirmation requires a stock reservation and a recorded payment authorization. Retries identify the same attempt. An uncertain payment outcome remains pending until checked. Reservation expiry is still unresolved; I would examine that next.”
This separates the promise, the proposed mechanism and the unfinished work.
If the interviewer reserves the end for your questions, finish the design summary before that period. If discussion continues, use a shorter summary rather than interrupting an active technical question.
Try it yourself
Take five minutes to reconstruct the Kartly flow on paper. Then explain it aloud without naming any technology products.
For each step, name its owner, stored outcome and possible failure. Mark any step you can describe only as “the backend handles it.”
Use those marks to choose your next practice topic. A recorded practice session is useful only if you review what you actually explained, not whether the timer ended neatly.
This framework depends on agreeing on the right problem first; Clarifying requirements in an interview examines that opening conversation next.
Common mistakes
- Treating the schedule as a rubric. The ranges organize practice; they do not establish an employer’s scoring rules.
- Finishing estimates without using them. State the resulting design decision, or stop calculating.
- Drawing everything before tracing anything. Explain one complete user journey before adding supporting systems.
- Skipping failure because time is short. Cut a secondary feature instead of leaving the main promise untested.
- Claiming unfinished work is solved. Name the missing mechanism and the next question it raises.
Check your understanding
The interviewer asks about lost payment responses during your estimation stage. Should you postpone the question until minute 20?Show answer
You know Kartly’s total festival traffic but not its checkout traffic. Can you use the total as the payment authorization rate?Show answer
You have ten minutes left, a complete normal flow and no failure explanation. Should you add regional failover or inspect an uncertain payment outcome?Show answer
Your summary says retries are safe, but you never explained where attempt identifiers are enforced. What should you change?Show answer
Summary
- Use checkpoints to produce evidence: an agreed problem, useful estimates, a working flow, tested decisions and clear limits.
- Treat the 45-minute schedule as an adaptable practice default, not a universal scoring rule.
- Trace one complete user journey before expanding the architecture.
- Choose depth from the most important requirement, then test it against failure.
- When time runs short, reduce scope and close honestly about unresolved work.