The twelve, grouped
| Group | Factors |
|---|---|
| Code & dependencies | I. One codebase, many deploys · II. Explicitly declared dependencies |
| Config & services | III. Config in the environment · IV. Backing services are attached resources (DB, Redis = URLs) |
| Build & run | V. Strict build → release → run stages · VI. Stateless processes · VII. Port binding · VIII. Scale out via processes |
| Operations | IX. Disposability (fast start, graceful shutdown) · X. Dev/prod parity · XI. Logs as event streams · XII. Admin tasks as one-off processes |
The ones that bite most
- VI Stateless: no sessions or uploads on local disk. Put state in Redis or S3, or pods can't scale or restart freely.
- IX Disposability: handle
SIGTERM, finish in-flight requests, and release job locks. Kubernetes will kill your pod. - X Parity: "works locally" breaks when local uses SQLite and prod uses Mongo. Containers and a scripted local setup close the gap.
The Claude-driven local setup agent our team built is really a Factor X tool. It brings 60+ services plus MongoDB and Redis up locally with prod-like config, so "works on my machine" means something.
Sources & further learning
Videos, courses, docs and books I recommend for this topic.
Related topics
CI/CD & GitOps
From commit to Kubernetes — build once, promote the same artefact, and let Git be the source of truth for what's running (ArgoCD).
Kubernetes Essentials for Architects
The objects that matter — Deployment, Service, Ingress, ConfigMap/Secret, HPA — and the settings that decide reliability (probes, requests/limits, PDBs).
Observability — Logs, Metrics, Traces
Know what your system is doing in production — the three pillars, OpenTelemetry, SLIs/SLOs, and alerting on symptoms not causes.