Chapter 20 — Real-World Scenarios

Let's apply everything to five concrete projects, showing how the decision framework leads to different architectures.

Scenario 1: Personal Technical Blog

AspectDecision
Traffic~1000 visitors/day, spikes when posts hit HN/Reddit
Budget$0-20/month
TeamJust you
SLABest effort (downtime is annoying, not catastrophic)

Architecture

┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ Markdown │────▶│ Hugo/Astro │────▶│ Cloudflare │ │ files in │ │ (build step)│ │ Pages (CDN) │ │ Git repo │ │ │ │ FREE │ └──────────────┘ └──────────────┘ └──────────────┘ │ GitHub Actions (auto-build on push)

Scenario 2: Startup SaaS MVP

AspectDecision
Traffic~500 users, growing. API-heavy (user auth, CRUD, real-time)
Budget$50-200/month
Team2-3 developers
SLA99.9% (paying customers)

Architecture

┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ React SPA │────▶│ Vercel/ │ │ Railway │ │ (frontend) │ │ Cloudflare │ │ or Render │ └──────────────┘ │ Pages │ │ (backend) │ └──────────────┘ └──────┬───────┘ │ ┌───────▼───────┐ │ Managed │ │ PostgreSQL │ │ + Redis │ └───────────────┘

Scenario 3: E-Commerce Site

AspectDecision
Traffic~10K daily visitors, 5x spikes during sales
Budget$200-500/month
Team3-5 developers + 1 DevOps
SLA99.95% (downtime = lost revenue)
CompliancePCI-DSS (handling payments)

Architecture

┌───────────┐ ┌───────────┐ ┌───────────────────────────────┐ │CloudFront │───▶│ ALB │───▶│ ECS Fargate (containers) │ │ (CDN) │ │(HTTPS/LB) │ │ ┌─────────┐ ┌───────────┐ │ └───────────┘ └───────────┘ │ │ Web │ │ Worker │ │ │ │ (x2-4) │ │ (x1-2) │ │ │ └────┬────┘ └─────┬─────┘ │ └───────┼─────────────┼────────┘ │ │ ┌───────▼─────────────▼────────┐ │ RDS PostgreSQL (Multi-AZ) │ │ ElastiCache Redis │ │ S3 (product images) │ └──────────────────────────────┘

Scenario 4: Enterprise Internal Tool

AspectDecision
Traffic~200 internal users, business hours only
Budget$100-300/month
Team1-2 developers (part-time maintenance)
SLA99.5% (business hours)
ComplianceData must stay in EU, SSO required

Architecture

┌───────────────┐ ┌──────────────────────────────────┐ │ Corporate │────▶│ Hetzner VPS (EU) │ │ VPN / SSO │ │ ┌────────────┐ ┌────────────┐ │ │ (Okta/Azure │ │ │ Caddy │ │ App │ │ │ AD) │ │ │ (proxy) │──▶│ (Docker) │ │ └───────────────┘ │ └────────────┘ └─────┬──────┘ │ │ │ │ │ ┌──────▼──────┐ │ │ │ PostgreSQL │ │ │ │ (Docker) │ │ │ └─────────────┘ │ └──────────────────────────────────┘

Scenario 5: High-Traffic Media/Content Site

AspectDecision
Traffic~1M daily visitors, global audience, viral spikes
Budget$2000-10000/month
Team8-15 developers, 2-3 SRE/DevOps
SLA99.99% (ad revenue depends on uptime)

Architecture

┌──────────────────────────────────────────────────────────────────┐ │ Cloudflare (CDN + WAF + DDoS) │ └────────────────────────────────┬─────────────────────────────────┘ │ ┌────────────────────────────────▼─────────────────────────────────┐ │ AWS Multi-Region │ │ │ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────────────────┐ │ │ │ EKS Cluster │ │ EKS Cluster │ │ Shared Services │ │ │ │ (Region 1) │ │ (Region 2) │ │ • S3 (media storage) │ │ │ │ │ │ │ │ • CloudFront (assets) │ │ │ │ Services: │ │ Services: │ │ • ElasticSearch │ │ │ │ • CMS API │ │ • CMS API │ │ • SQS (async jobs) │ │ │ │ • Auth │ │ • Auth │ │ • Lambda (image proc) │ │ │ │ • Search │ │ • Search │ └─────────────────────────┘ │ │ └──────┬───────┘ └──────┬───────┘ │ │ │ │ │ │ ┌──────▼───────┐ ┌──────▼───────┐ │ │ │ Aurora Global │ │ Aurora Read │ │ │ │ (Primary) │ │ (Replica) │ │ │ └──────────────┘ └──────────────┘ │ └───────────────────────────────────────────────────────────────────┘
Notice the pattern: Complexity scales with requirements, not ambition. The blog costs $0/mo and takes 30 minutes to set up. The media site costs $5000/mo and takes months to architect. Both are correct for their context. The worst mistake is using Scenario 5's architecture for Scenario 1's requirements.