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.[1][2][3]
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[4] 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.[5]
Anwendung
Es gibt einige Systeme, die nach SCS-Ideen aufgebaut sind – beispielsweise bei Otto[6], GALERIA Kaufhof[7] und Kühne+Nagel[8].
Weblinks
Beschreibung des SCS-Ansatzes auf scs-architecture.org