Similar to the microservice architecture, a Self-Contained System (SCS) divides an application into numerous independent components (here its called: systems). The major difference between SCS and a microservice architecture: First, the number of independent services is significantly higher in the microservice architecture that the number of systems in an SCS. Second, in the microservice architecture, the microservices communicate with each other (also synchronously) and may have their own user interface. In contrast, in an SCS the communication between the SCS systems should be asynchronous, the integration is achieved via the UI.
So much for the differences. By the way, SCS is mainly used for web applications. Here are a few central characteristics for a Self-Contained System: Each SCS is typically developed by a separate team (Note: independence often leads to less reusability of functions). Each SCS has its own logic and data layer.
Advantages at a glance
- Available UI (Web or HTML)
- Separation of functionality into autarkic systems
- Free choice of programming language per system
- Any architecture in an SCS
There are also - as always in life - a few disadvantages
- Integration via UI complex
- Delegation between the SCS only via links
- reusability limited
- Discrepancy Integration via UI or API