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.
SCS haben folgende Eigenschaften:
Umsetzungen implementieren so große Systeme – vor allem Web-Anwendungen.
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.
Self-contained Systems und Vertical Slice Architecture haben Ähnlichkeiten, aber auch entscheidende Unterschiede. Beide Ansätze unterteilen ein System in kleinere, überschaubare Einheiten. Vertical Slices werden auf der Grundlage von fachlichen Features geschnitten, Self-contained Systems entlang der Grenzen von fachlichen Domänen. Sie unterscheiden sich auch in der Striktheit, mit der sie Fachlogik kapseln und isolieren.
Es gibt einige Systeme, die nach SCS-Ideen aufgebaut sind – beispielsweise bei Otto, GALERIA Kaufhof, Kühne+Nagel und Breuninger.