Architecture Atlassoftware · systems · evidence
Software · Systems · Quality · EvolutionView Markdown source

A repeatable system-design and architecture interview method

A good design process moves from purpose and numbers to boundaries, data, interactions, failure, security, and evolution. Product names come after forces.

Core ideas and patterns

Idea What it solves Cost, limit, or warning
Clarify scope Prevents solving a different system Time-box questions and state assumptions
Estimate workload Sizes traffic, storage, bandwidth, and growth Order-of-magnitude is enough to expose constraints
Define SLOs/invariants Turns quality into design drivers Avoid percentages without user journey
Context and APIs Defines actors and external contracts Premature endpoints can freeze weak boundaries
Data model Exposes identity, ownership, transactions, and queries A schema is not the full consistency model
Critical flow Explains the normal end-to-end path Also model timeout, duplicate, and partial failure
Scale and resilience Adapts the bottleneck and failure model Do not add every pattern by default
Security/operations Makes trust, telemetry, rollout, and recovery real Often omitted under interview pressure

How to apply it

Use this sequence: outcome and non-goals; actors/context; workload estimates; invariants and quality scenarios; logical boundaries; APIs/events; data ownership and consistency; critical sequence; deployment/failure domains; capacity; resilience; security/privacy; observability; delivery/migration; risks and ADRs. Revisit numbers when the design changes.

Evidence, not opinion

End with explicit trade-offs, bottleneck, cost drivers, unresolved risks, validation experiments, and what would trigger a different architecture. A strong answer is coherent, not a catalog dump.

Small example

For a URL shortener, clarify redirect/read dominance, custom aliases, expiry, abuse, geographic latency, and availability. Estimate key volume and read rate before choosing partitioning, cache, and multi-region behavior.

Feynman check

Explain the design to a new engineer without using the pattern names. State the problem, the forces that conflict, the chosen boundary or mechanism, what can fail, and the evidence that would prove the choice still works.

Architecture AtlasIndependent study material · verify standards at their primary sources