These comparison tables help you choose the right technology for a given requirement. They summarize trade-offs covered throughout the handbook.
SQL vs. NoSQL Decision Matrix
| Factor | Choose SQL | Choose NoSQL |
|---|
| Data structure | Well-defined schema, stable over time | Flexible, evolving, or varied schema |
| Relationships | Complex joins, referential integrity | Minimal relationships, self-contained records |
| Transactions | Multi-row ACID transactions needed | Single-record atomicity sufficient |
| Consistency | Strong consistency required | Eventual consistency acceptable |
| Query patterns | Complex queries, ad-hoc reporting, aggregation | Simple key-based lookups, known access patterns |
| Scale | Moderate (vertical + read replicas) | Massive horizontal scaling needed |
| Developer familiarity | SQL is universally known | Varies by NoSQL type |
| Examples | PostgreSQL, MySQL, Aurora | DynamoDB, Cassandra, MongoDB, Redis |
Message Queue Comparison
| Feature | Kafka | RabbitMQ | SQS | Redis Streams |
|---|
| Model | Distributed log (pub/sub) | Message broker (queues + exchanges) | Managed queue | In-memory stream |
| Ordering | Per-partition | Per-queue (single consumer) | FIFO queues available | Per-stream |
| Throughput | Very high (millions msg/s) | Moderate (10K-50K msg/s) | High (standard), limited (FIFO) | High (in-memory) |
| Retention | Configurable (days to forever) | Until consumed | 14 days max | Configurable |
| Replay | Yes (consumers track offsets) | No (message deleted after ack) | No | Yes (by ID) |
| Operations | Self-managed or managed (MSK, Confluent) | Self-managed or managed | Fully managed (AWS) | Part of Redis deployment |
| Best for | Event streaming, logs, high throughput | Task routing, complex routing patterns | Simple queuing on AWS | Lightweight streaming within Redis |
Cache Comparison: Redis vs. Memcached
| Feature | Redis | Memcached |
|---|
| Data structures | Strings, lists, sets, sorted sets, hashes, streams | Strings only (key-value) |
| Persistence | Optional (RDB snapshots, AOF logs) | None |
| Replication | Built-in (primary-replica) | None (client-side sharding) |
| Pub/Sub | Built-in | None |
| Lua scripting | Yes | No |
| Memory efficiency | Higher overhead per key (more features) | Lower overhead (simpler data model) |
| Max value size | 512 MB | 1 MB |
| Threading | Single-threaded (Redis 7+ has I/O threads) | Multi-threaded |
| Best for | Versatile caching, sessions, leaderboards, rate limiting | Pure key-value caching, maximum simplicity |
Load Balancer Comparison
| Feature | Nginx | HAProxy | Envoy | AWS ALB |
|---|
| Type | Web server + proxy | Dedicated proxy | Microservice proxy | Managed service |
| Layer | 4 and 7 | 4 and 7 | 4 and 7 | 7 |
| Configuration | File-based (static) | File-based (hot reload) | API-driven (xDS) | AWS Console/API |
| Health checks | Basic (Plus: advanced) | Advanced, detailed | Advanced, active + passive | Built-in |
| Observability | Access logs, basic metrics | Rich stats dashboard | Detailed metrics, tracing | CloudWatch integration |
| WebSocket support | Yes | Yes | Yes | Yes |
| Service mesh | Limited | Not designed for it | Default data plane (Istio) | Not applicable |
| Best for | General web serving + proxy | Advanced load balancing | Microservices, service mesh | AWS-native, zero ops |
Container Orchestration Comparison
| Feature | Kubernetes | ECS | Nomad |
|---|
| Complexity | High | Medium | Low-Medium |
| Cloud lock-in | None (runs anywhere) | AWS only | None |
| Workload types | Containers | Containers | Containers, VMs, binaries, Java |
| Auto-scaling | HPA, VPA, Karpenter | Service auto-scaling | Built-in |
| Service mesh | Istio, Linkerd, Consul | AWS App Mesh | Consul Connect |
| Learning curve | Steep | Moderate | Gentler |
| Ecosystem | Massive (CNCF) | AWS-integrated | HashiCorp ecosystem |
| Best for | Large-scale, multi-cloud | AWS-native teams | Simple orchestration, mixed workloads |
Object Storage Comparison
| Feature | AWS S3 | Google Cloud Storage | Azure Blob Storage |
|---|
| Durability | 99.999999999% (11 nines) | 99.999999999% | 99.999999999% |
| Storage classes | Standard, IA, Glacier, Deep Archive | Standard, Nearline, Coldline, Archive | Hot, Cool, Cold, Archive |
| Max object size | 5 TB | 5 TB | 4.75 TB (block blob) |
| Versioning | Yes | Yes | Yes |
| Lifecycle policies | Yes | Yes | Yes |
| CDN integration | CloudFront | Cloud CDN | Azure CDN |
| Pricing (approx, per GB/month) | $0.023 (Standard) | $0.020 (Standard) | $0.018 (Hot) |
| Best for | AWS ecosystems | GCP ecosystems | Azure ecosystems |