12 Factor App (Concept)
April 18, 2025 ยท View on GitHub
Description
is a methodology for building software-as-a-service applications
Documentation
In the modern era, software is commonly delivered as a service: called web apps, or software-as-a-service. The twelve-factor app is a methodology for building software-as-a-service apps that:
- Use declarative formats for setup automation, to minimize time and cost for new developers joining the project;
- Have a clean contract with the underlying operating system, offering maximum portability between execution environments;
- Are suitable for deployment on modern cloud platforms, obviating the need for servers and systems administration;
- Minimize divergence between development and production, enabling continuous deployment for maximum agility;
- And can scale up without significant changes to tooling, architecture, or development practices.
The twelve-factor methodology can be applied to apps written in any programming language, and which use any combination of backing services (database, queue, memory cache, etc).
Other Relations
| From | Name | To | Description |
|---|---|---|---|
| Concurrency | factor of | 12 Factor App | scale out via the process model |
| Processes | factor of | 12 Factor App | execute the app as one or more stateless processes |
| Config | factor of | 12 Factor App | store config in the environment |
| Backing Services | factor of | 12 Factor App | treat backing services as attached resources |
| Disposability | factor of | 12 Factor App | maximize robustness with fast startup and graceful shutdown |
| Dev/Prod Parity | factor of | 12 Factor App | keep development, staging, and production as similar as possible |
| Logs | factor of | 12 Factor App | treat logs as event streams |
| Admin Processes | factor of | 12 Factor App | run admin/management tasks as one-off processes |
| Codebase | factor of | 12 Factor App | always tracked in a version control system |
| Dependencies | factor of | 12 Factor App | explicitly declare and isolate dependencies |
| Build, Release, Run | factor of | 12 Factor App | strictly separate build and run stages |
| Port Binding | factor of | 12 Factor App | export services via port binding |
Concept Map

Concept Map for Twelve Factor Apps
Navigation
(generated by Overarch with template docs/node.md.cmb)