Ähnlich wie bei der Microservice-Architektur wird bei einem Self-Contained System (SCS) eine Anwendung in zahlreiche unabhängige Komponenten (hier: Systeme) untergliedert. Der Unterschied von SCS zu einer Microservice-Architektur besteht etwa darin, dass bei der Microservice-Architektur die Anzahl der unabhängigen Service-Komponenten deutlich höher ist. Und bei der Microservice-Architektur kommunizieren die Microservice-Komponenten untereinander (auch synchron) und haben gegebenenfalls ein eigenes User Interface.
Soviel zu den Unterschieden. SCS wird übrigens vor allem für Webanwendungen eingesetzt. Hier ein paar zentrale Charakteristiken für ein Self-Contained System: Jedes SCS wird typischerweise von einem eigenen Team entwickelt (die Unabhängigkeit führt dann häufig auch zu einer geringeren Wiederverwendbarkeit von Funktionen). Die Kommunikation zwischen den SCS soll asynchron ausgelegt werden. Jedes SCS hat eine eigene Logik- und Datenschicht.
Vorteile im Überblick
- Verfügbare UI (Web bzw. HTML)
- Separation von Funktionalität in autarke Systeme
- Freie Wahl der Programmiersprache pro System
- Beliebige Architektur in einem SCS
Es gibt auch – wie immer im Leben – ein paar Nachteile
- Integration über UI aufwändig
- Delegation zwischen den SCS nur über Links
- Wiederverwendbarkeit eingeschränkt
- Diskrepanz Integration per UI bzw. API