Focus

Self-contained Systems

Self-contained systems break down an application landscape into independent systems, each with its own UI, business logic, and data storage, connected only through loosely coupled integration mechanisms.

Self-Contained Systems: Architecture Principles for Independent Systems

Self-contained systems (SCS) describe an architecture in which an application landscape is split into several independent systems. Each system has its own UI, its own business logic, and its own data storage, and runs independently of the others. Integration between systems happens asynchronously or through simple links and frontend inclusion, rather than shared runtimes or synchronous call chains.

The approach works particularly well for large organizations where multiple teams want to develop and deploy independently, without coordinating a shared codebase or release cycle. The concept was originally developed at INNOQ and is covered in more depth in our training Flexible Architectures.

This page brings together articles, podcasts and talks on this topic.

Our Services

We advise honestly, think innovatively and love to build. The result: successful software solutions, infrastructures and business models.

Case Studies

Case Study

The Thermomix as an online platform with up to 45 million accesses per day

Case Study

Breuninger improves time-to-market through verticalization and self-contained systems

Frequently Asked Questions

Do you have questions about Self-contained Systems? Here you will find answers to questions we are frequently asked.

What are Self-contained Systems, and when are they a good fit?

Self-contained Systems (SCS) divide a larger software system into functionally independent web applications. Each SCS contains the user interface, business logic, and data it needs for its area and can largely be developed and deployed independently. The approach is particularly useful when a large codebase, tight dependencies, or constant coordination between teams are slowing development down.

Learn more about SCS at INNOQ: Self-contained Systems

How are Self-contained Systems different from microservices?

SCS and microservices share a similar goal: breaking systems into parts that can evolve independently. Self-contained Systems, however, are more explicitly defined as complete functional units. They include their own user interface, business logic, and data and are often larger in scope than individual microservices. An SCS may itself consist of several services.

How do you divide a system into meaningful Self-contained Systems?

The boundaries of Self-contained Systems should primarily follow the business domain rather than technical layers or individual components. Strategic Domain-driven Design techniques such as EventStorming can help teams uncover responsibilities, dependencies, and potential system boundaries. The goal is to create units that can be owned by a single team and evolved as independently as possible.

The INNOQ primer Self-contained Systems covers the key architecture decisions, from identifying domain boundaries to choosing suitable integration techniques (available in German).

How can Self-contained Systems help modernize legacy systems?

SCS support incremental modernization without requiring teams to rebuild an existing monolith from scratch. The existing system is analyzed along domain boundaries and gradually decomposed into independent subsystems. A useful starting point is often a part of the system that can be separated from the legacy application with relatively little effort while delivering significant business value.

INNOQ supports organizations with this kind of evolutionary modernization: Legacy Modernization

What role does INNOQ play in Self-contained Systems?

INNOQ helped develop the Self-contained Systems architectural approach and has been applying it in architecture and development projects for many years. Today, our experience from developing and applying SCS feeds into client projects as well as articles, talks, and the SCS primer.

Learn more: Self-contained Systems and Software Architecture and Development