Architecture Decision Guide
A good architecture is not the one with the most services. It is the one that satisfies the requirements with acceptable reliability, security, performance, cost, and operational complexity.
Start with requirements
Before selecting services, clarify:
- Availability target and failure tolerance.
- RTO and RPO.
- Expected traffic and growth.
- Data sensitivity and compliance.
- Latency requirements.
- Budget and operational capacity.
- Regional and global requirements.
- Recovery and observability expectations.
Then make the major decisions
Compute
Compare managed containers, Kubernetes, serverless, and virtual machines based on workload characteristics rather than popularity.
Data
Choose the data store from access patterns, consistency, scale, durability, latency, and operational needs.
Networking
Define ingress, egress, service-to-service communication, segmentation, DNS, private connectivity, and failure boundaries.
Security
Prefer least privilege, strong identity boundaries, encryption, secrets management, logging, and explicit trust boundaries.
Operations
Design monitoring, alerting, tracing, backups, deployment strategy, rollback, and incident response before production.
The architecture interview test
For every major decision, be able to answer:
Why this choice, what alternatives did you reject, what trade-off did you accept, and how would you change the design if the requirement changed?