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

FromNameToDescription
Concurrencyfactor of12 Factor Appscale out via the process model
Processesfactor of12 Factor Appexecute the app as one or more stateless processes
Configfactor of12 Factor Appstore config in the environment
Backing Servicesfactor of12 Factor Apptreat backing services as attached resources
Disposabilityfactor of12 Factor Appmaximize robustness with fast startup and graceful shutdown
Dev/Prod Parityfactor of12 Factor Appkeep development, staging, and production as similar as possible
Logsfactor of12 Factor Apptreat logs as event streams
Admin Processesfactor of12 Factor Apprun admin/management tasks as one-off processes
Codebasefactor of12 Factor Appalways tracked in a version control system
Dependenciesfactor of12 Factor Appexplicitly declare and isolate dependencies
Build, Release, Runfactor of12 Factor Appstrictly separate build and run stages
Port Bindingfactor of12 Factor Appexport services via port binding

Concept Map

Concept Map for Twelve Factor Apps

Concept Map for Twelve Factor Apps

List of views in namespace

List of all Views

(generated by Overarch with template docs/node.md.cmb)