3.3 Specific Technologies
While principles and patterns are universal, a good system designer is also aware of the concrete tools and platforms used to implement those patterns. For an L5 interview, you're not expected to be an expert in every technology, but you should be able to name relevant services and understand their role. This section gives a high-level overview of common platforms and services.
We'll cover:
- 3.3.a Cloud Platforms (AWS, GCP, Azure)
- 3.3.b Message Brokers (Kafka vs. RabbitMQ)
3.3.a Cloud Platforms (AWS, GCP, Azure)
Modern system design is overwhelmingly done on cloud platforms. They provide the fundamental building blocks as managed services, which handles much of the underlying complexity of scaling, reliability, and maintenance. Being familiar with the major services on at least one major cloud provider (AWS is a common one to know) is highly beneficial.
Below is a mapping of common system design components to their managed service equivalents on the three major cloud platforms.
Category | AWS (Amazon Web Services) | GCP (Google Cloud Platform) | Azure (Microsoft Azure) |
---|---|---|---|
Compute (VMs) | EC2 (Elastic Compute Cloud) | Compute Engine | Virtual Machines |
Containers | ECS / EKS (Kubernetes) | GKE (Kubernetes Engine) | AKS (Kubernetes Service) |
Serverless Compute | Lambda | Cloud Functions | Azure Functions |
Object Storage | S3 (Simple Storage Service) | Cloud Storage | Blob Storage |
Relational DB | RDS (Relational DB Service) | Cloud SQL | Azure SQL Database |
NoSQL (Key-Value) | DynamoDB | Firestore / Bigtable | Cosmos DB |
In-Memory Cache | ElastiCache (Redis/Memcached) | Memorystore (Redis/Memcached) | Azure Cache for Redis |
Load Balancing | ELB (ALB, NLB, GWLB) | Cloud Load Balancing | Azure Load Balancer |
Message Queue | SQS (Simple Queue Service) | Cloud Pub/Sub | Azure Service Bus |
Streaming Platform | Kinesis | Dataflow / Cloud Pub/Sub | Azure Event Hubs |
API Gateway | API Gateway | API Gateway / Apigee | API Management |
CDN | CloudFront | Cloud CDN | Azure CDN |
DNS | Route 53 | Cloud DNS | Azure DNS |
Identity/Auth | IAM / Cognito | Cloud Identity / IAM | Azure Active Directory |
Key Management | KMS (Key Management Service) | Cloud KMS | Azure Key Vault |
Summary for an Interview
- You don't need to know them all. Pick one platform (AWS is a very common choice) and become comfortable with its core services.
- Use managed services in your design. Instead of just saying "we'll use a relational database," you can say, "we'll use a managed relational database like AWS RDS. This handles replication, backups, and patching for us, improving our operational posture."
- Show you understand the value. Mentioning managed services shows that you are thinking about the practical aspects of building and operating a system, not just the abstract design. It demonstrates an awareness of reducing operational complexity, which is a key engineering consideration.