How Do I Run an Effective Architectural Review?
For Backend engineers and tech leads conducting architectural reviews · Based on Simonyan System Design Architecture Skill
// TL;DR
The Simonyan System Design Architecture Skill provides a structured checklist for architectural reviews. Walk through the ten-step workflow against your existing system to identify scalability bottlenecks, single points of failure, database mismatches, load balancing gaps, and API design violations. The framework's principles — start small then scale, separate tiers, avoid SPOFs, match database to data shape, and articulate trade-offs — become audit criteria. Use it during quarterly architecture reviews, pre-launch readiness checks, or when onboarding onto a complex codebase.
Why Do Architectural Reviews Often Miss Critical Issues?
Most architectural reviews are unstructured conversations where senior engineers share opinions without a systematic checklist. This leads to missed single points of failure, unexamined database choices, and load balancing configurations that were set up once and never revisited.
The Simonyan System Design Architecture Skill converts system design from an art into a repeatable audit process. Each of the ten workflow steps becomes a review checkpoint.
How Do I Use the Ten-Step Workflow as an Audit Checklist?
Step 1: Baseline verification. Can you trace a single request from DNS resolution through your server to the database and back? If no one on the team can draw this flow accurately, your documentation is insufficient.
Steps 2-3: Tier separation and database fit. Is the web tier separated from the data tier? Can each scale independently? Is your database type correct for your data shape? A common finding: teams using PostgreSQL for log-like, append-heavy data that would perform far better in a wide-column store like Cassandra.
Steps 4-5: Scaling and load balancing. Are you horizontally scaled, or is a single powerful server your only plan? What load balancing algorithm are you using, and does it match your traffic pattern? Are health checks configured and actually working?
Step 6: Single points of failure. This is the highest-value audit step. For every critical component — database, load balancer, cache, message queue — ask: what happens if this single instance dies right now? If the answer is 'the system goes down,' you have a SPOF to fix.
Steps 7-9: API design review. Are REST endpoints using plural nouns and proper HTTP methods? Is pagination implemented on all list endpoints? Is API versioning in place? Are authentication, authorization, rate limiting, and input validation enforced?
Step 10: Trade-off documentation. For every major architectural decision in your system, is there a written record of what was gained and what was given up? If not, the next engineer to touch the system will not understand why decisions were made and may inadvertently undo them.
What Are the Most Common Findings in Architectural Reviews?
Based on the Simonyan framework's pitfalls list, the most common findings include:
- Undocumented SPOFs: A single Redis instance handling all caching with no replica. A single load balancer with no failover.
- Database mismatches: Relational databases storing JSON blobs that should be in a document store, or NoSQL databases used for data that requires ACID transactions.
- Missing pagination: List endpoints returning unbounded result sets, causing memory spikes and slow responses under load.
- No API versioning: Backend changes breaking mobile clients that haven't updated yet.
- Vertical scaling dependency: The production database running on one very large server with no horizontal scaling plan.
How Do I Present Findings So They Lead to Action?
Use the Simonyan framework's trade-off articulation principle. For each finding, present:
1. Current state: What exists today and the risk it creates.
2. Recommended change: What you propose.
3. Trade-off: What you gain (e.g., fault tolerance) and what it costs (e.g., operational complexity, infrastructure cost).
This structure makes it easy for engineering leadership to prioritize fixes based on risk and cost. It also prevents the review from becoming a wish list of ideal-world improvements that never get implemented.
Schedule your next architectural review and walk through all ten steps with your team. Document every SPOF, every database mismatch, and every missing API best practice. Prioritize by blast radius — fix the issues that would take down the entire system first.
// FREQUENTLY ASKED QUESTIONS
How often should I run architectural reviews using this framework?
Run a full ten-step review quarterly or before any major launch. Run targeted reviews (specific steps only) when a component changes significantly — for example, re-evaluate steps 3-5 when migrating databases or adding new services. The key is making reviews routine, not reactive to incidents.
How do I prioritize findings from an architectural review?
Prioritize by blast radius: how many users are affected if this component fails? Single points of failure in your primary database or load balancer are highest priority. Missing pagination or API versioning are important but lower urgency. Use the trade-off articulation format — state what you gain and what it costs — so leadership can make informed prioritization decisions.
Can I use this framework to review a microservices architecture?
Yes. Apply the framework to each microservice individually (database fit, scaling, load balancing, API design) and then to the system as a whole (inter-service communication protocols, message queues, distributed SPOFs). Pay special attention to step 7 — microservices communicating via REST when gRPC or AMQP would be more appropriate is a common finding.