Design a highly available web application on AWS. Walk me through the architecture and your trade-offs.
What they are really testing: Whether you can design from requirements to a justified architecture, removing single points of failure at every tier, and narrate trade-offs, not just name services. This is the core senior signal.
A real interview question
Design a highly available web application on AWS. Walk me through the architecture and your trade-offs.
What most people say
drag me
“I would put it on a big EC2 instance with a database and use a load balancer.”
A load balancer in front of one instance and one DB is HA theatre, both are still single points of failure. It shows no per-tier failure analysis and no scaling or state story.
The follow-ups they ask next
Traffic 10x overnight from a launch. What breaks first and how did your design prepare?
Usually the database (connections/writes) before stateless compute. Prep: read replicas + caching for reads, connection pooling/RDS Proxy, async/queue for spiky writes, and pre-warming/over-provisioning ahead of a known launch.
Where did you deliberately choose simplicity over maximum availability, and why?
A strong answer names a conscious trade-off, e.g. single-region (multi-region’s complexity/cost not justified by the SLA), or RDS over self-managed, accepting the managed-service constraints for far less ops.
What the interviewer is listening for
- Clarifies requirements before designing
- Removes SPOFs at every tier
- Keeps compute stateless
- Narrates explicit trade-offs
What sinks the answer
- Jumps to services with no requirements
- Leaves a single DB/instance SPOF
- No state strategy
- Lists services without trade-offs
If you genuinely do not know
Say this instead of freezing. Reasoning out loud from what you do know beats silence every single time, and a good interviewer is listening for exactly that.
“First I’d clarify [load, SLA, read/write mix, budget]. Then remove SPOFs per tier: [Route53/CloudFront edge], [ASG across 3 AZs behind an ALB], [multi-AZ managed DB + read replicas]. Keep compute [stateless, state in cache/S3]. Trade-offs I’d flag: [multi-AZ cost, sync vs async replication, single- vs multi-region].”
Keep going with architecture & design
Junior
How does putting a load balancer in front of your app improve availability, and what does it NOT solve?
Junior
What is autoscaling, and how does it decide when to add or remove instances?
Senior
Design a disaster recovery strategy for a revenue-critical workload on AWS. How do you pick between backup-and-restore, pilot light, warm standby, and active-active?
Senior
Design a scalable async processing pipeline for spiky, long-running work (think video transcoding or report generation). Walk me through the queue-based architecture and its failure modes.
Senior
You own a system of many services and an incident took too long to diagnose. Design an observability strategy across the whole estate.
Senior
Design a CI/CD pipeline that lets a team deploy many times a day safely. How do you make production changes low-risk with progressive delivery?
Knowing the answer is not the same as recalling it under pressure
Sign in to send the questions you fumble to spaced recall, so they come back right before you would forget them, and learn the concepts behind them with hands-on labs.
Start free