Читать книгу Vom Monolithen zu Microservices - Sam Newman - Страница 35
Aggregate und Kontextgrenzen auf Microservices abbilden
ОглавлениеSowohl die Aggregate wie auch die Kontextgrenzen liefern uns Kohäsionseinheiten mit wohldefinierten Schnittstellen zum größeren System. Das Aggregat ist eine in sich abgeschlossene Zustandsmaschine, die sich auf ein einzelnes Domänenkonzept in unserem System konzentriert, während die Kontextgrenze eine Sammlung zusammengehöriger Aggregate repräsentiert, ebenfalls wieder mit einer expliziten Schnittstelle nach draußen.
Beides kann daher als Servicegrenzen gut funktionieren. Wie schon erwähnt, sollten Sie zu Beginn die Anzahl an Services, mit denen Sie arbeiten, klein halten. Daher wäre es vermutlich angebracht, Services anzustreben, die ganze Kontextgrenzen darstellen. Wenn Sie dann Fuß gefasst haben und sich entschließen, diese Services in kleinere Services zu unterteilen, versuchen Sie, sie entlang der Aggregatsgrenzen aufzuteilen.
Wenn Sie sich dazu entscheiden, einen Service, der eine ganze Kontextgrenze modelliert, später in kleinere Services aufzuteilen, besteht ein Trick darin, diese Entscheidung trotzdem vor der Außenwelt zu verbergen – etwa indem Sie eine grobkörnigere API für Konsumenten anbieten. Die Entscheidung, einen Service in kleinere Teile aufzutrennen, ist unbestreitbar eine Implementierungsentscheidung, daher können wir das auch verbergen!