Technical Glossary

Twelve-Factor App

Definition: Methodology of twelve principles for building modern SaaS applications that are portable, scalable, and deployable on cloud platforms predictably.

— Source: NERVICO, Product Development Consultancy

What Is the Twelve-Factor App

The Twelve-Factor App is a methodology created by Heroku engineers that defines twelve principles for building modern SaaS applications. These principles cover everything from source code management to deployment processes, providing a framework that maximizes portability between environments, horizontal scalability, and ease of continuous deployment on cloud platforms.

How It Works

The twelve factors are: (1) single codebase in version control, (2) explicitly declared dependencies, (3) configuration stored in the environment, (4) backing services as attached resources, (5) strict separation between build and run, (6) stateless processes, (7) port binding for service exposure, (8) scalability through concurrent processes, (9) disposability with fast startup and graceful shutdown, (10) maximum parity between development and production, (11) logs as event streams, and (12) admin processes run as one-offs.

Key Use Cases

  • Designing new cloud-native SaaS applications to be deployed in containers or PaaS platforms
  • Evaluating and modernizing existing applications by identifying which factors they do not meet
  • Standardizing development practices in large teams to ensure consistency across services
  • Preparing applications for deployment on Kubernetes or serverless services that require stateless processes

Advantages and Considerations

Following the twelve factors produces applications that are inherently portable across cloud providers, easy to scale horizontally, and straightforward to deploy automatically. The principles are widely accepted and understood in the industry. The main consideration is that some factors can be difficult to fulfill in legacy applications, and strict adherence may not be necessary in all contexts. It is a best practices guide, not an absolute requirement.

Need help with product development?

We help you accelerate your development with cutting-edge technology and best practices.