Self-contained Systems
# Self-contained Systems

Self-contained Systems (SCS) sind ein Architekturmuster der Informationstechnik, bei dem Funktionen in mehrere unabhängige Systeme separiert werden. So wird das logische Gesamtsystem zu einer Kollaboration mehrerer kleiner Software-Systeme.

## Eigenschaften von Self-contained System

SCS haben folgende Eigenschaften:

* Jedes SCS ist eine unabhängige Web-Anwendung.
* Jedes SCS wird von einem Team entwickelt.
* Kommunikation mit anderen SCSs oder Drittsysteme soll – wenn möglich – asynchron erfolgen.
* Ein SCS kann optional eine Service-API haben.
* Jedes SCS muss Daten und Logik enthalten.
* Ein SCS soll seine Features für Endkunden mit einer UI nutzbar machen.
* Um enge Kopplung zu vermeiden, darf ein SCS keinen Geschäftscode mit anderen SCS teilen.

Umsetzungen implementieren so große Systeme – vor allem Web-Anwendungen.

## Self-contained Systems und Microservices

Self-contained Systems sind Microservices ähnlich, aber es gibt einige Unterschiede: Ein System enthält weniger SCS als Microservices. Außerdem können Microservices mit anderen Microservices kommunizieren – sogar synchron. SCS hingegen sollen idealerweise gar nicht oder nur asynchron kommunizieren. Da ein Self-contained System eine unabhängige Web-Anwendung darstellt, die mit möglichst loser Kopplung mit anderen Systemen integriert wird, kann es auch als kleiner Monolith betrachtet werden, der nur eine Funktion geschlossen abbildet.

## Anwendung

Es gibt einige Systeme, die nach SCS-Ideen aufgebaut sind – beispielsweise bei Otto, GALERIA Kaufhof und Kühne+Nagel.

