Other lifestyles
Life has more than three lifestyles, and so do systems. These archetypes cover most of the remaining shapes you'll meet.
🦉 The night owl — batch systems
Works quietly at night: payroll runs, nightly reports, data pipelines, invoice generation.
- Design: scheduled triggers (EventBridge Scheduler), Step Functions with a distributed map for large datasets, AWS Batch or Fargate for long jobs, Glue for data transformations.
- Watch for: jobs that silently don't run (alarm on "job did not complete by 6 a.m."), and idempotent reruns.
🎉 The party animal — event spikes on known dates
Quiet most of the time, then a huge party: Black Friday, exam results, a product launch, a sports final.
- Design: chilling architecture most of the year, rat-race measures scheduled for the party — raised quotas, scheduled provisioned concurrency, pre-warmed tables, waiting rooms, caching.
- Watch for: forgetting to scale back down afterwards (costs).
🧘♂️ The monk — the simple monolith
Lives a simple, focused life in one place. A modular monolith — one deployable service with clear internal modules (body parts) — is often the best choice for small teams and early products.
- Design: one Lambda-based API (or one container on Fargate) with internal modules, one database.
- Watch for: modules leaking into each other; split into humans when the signals from one body or many appear.
🏝️ The hermit — isolated, regulated systems
Lives apart, with strict rules about visitors: healthcare, banking, government systems with strong compliance needs.
- Design: dedicated accounts, private APIs (API Gateway private endpoints, VPC endpoints), customer-managed encryption keys, strict audit logging (CloudTrail, Config), data residency in specific Regions.
- Watch for: convenience creeping in — every shortcut weakens isolation.
🌍 The nomad — global, multi-Region systems
Lives in many places at once: global consumer apps that need low latency everywhere and survive a Region outage.
- Design: DynamoDB global tables, Route 53 latency routing or CloudFront, EventBridge global endpoints, stateless humans deployed in several Regions with the same DNA.
- Watch for: data conflicts between Regions, and doubled costs.
👴 The elder — legacy systems
Has lived a long life and carries lots of wisdom (and habits): the old monolith on servers that still runs the business.
- Design: don't replace everything at once. Use the strangler fig pattern — put a gate (API Gateway) in front, then move one capability at a time into new humans, routing traffic gradually, until the elder can retire.
- Watch for: two sources of truth during the transition; keep them in sync with events.
Lifestyle summary
| Lifestyle | Traffic shape | Key AWS patterns |
|---|---|---|
| 🏃 Rat race | Constant pressure and spikes | Queues, throttling, provisioned concurrency, caching |
| 🧘 Peace | Steady | Event-driven humans, observability, cost discipline |
| 😎 Chilling | Near zero | Scale-to-zero serverless, budgets |
| 🦉 Night owl | Scheduled bursts | Scheduler, Step Functions, Batch, Glue |
| 🎉 Party animal | Rare, huge, known spikes | Scheduled scaling, waiting rooms |
| 🧘♂️ Monk | Any, small team | Modular monolith |
| 🏝️ Hermit | Any, high compliance | Private networking, KMS, audit |
| 🌍 Nomad | Global | Multi-Region, global tables |
| 👴 Elder | Legacy | Strangler fig migration |
Name the lifestyle out loud in your design document. It turns vague debates ("is this over-engineered?") into clear questions ("is this a rat race or a chilling system?").