An Business Capabilities schneiden
Grenzen entlang fachlicher Domänen und klarer Verantwortlichkeiten ziehen. Technische Schichten wie API, Worker und Datenzugriff gehören meistens in denselben Service, wenn sie dieselbe Fähigkeit bedienen.
CH/DE Leitfaden
Diese Seite fasst bewährte Richtlinien für Microservices und Event Driven Architecture zusammen: von Service-Grenzen über Event-Contracts bis zu Observability, Deployment und Teamverantwortung.
Grundlagen
Ein Microservice ist nicht einfach ein kleiner Deployable. Er kapselt eine fachliche Fähigkeit, Datenhoheit und operative Verantwortung.
Grenzen entlang fachlicher Domänen und klarer Verantwortlichkeiten ziehen. Technische Schichten wie API, Worker und Datenzugriff gehören meistens in denselben Service, wenn sie dieselbe Fähigkeit bedienen.
Jeder Service besitzt seine Daten. Andere Services lesen nicht direkt in fremden Datenbanken, sondern nutzen APIs, Events oder replizierte Read Models.
Synchrone Aufrufe sparsam einsetzen, Timeouts und Fallbacks definieren und keine internen Modelle als öffentliche Verträge veröffentlichen.
Ein Service sollte unabhängig getestet, deployed, skaliert und zurückgerollt werden können. Gemeinsame Bibliotheken klein halten und nicht zur versteckten Plattform machen.
Event Driven Architecture
Events entkoppeln Abläufe, erhöhen aber die Anforderungen an Verträge, Idempotenz, Reihenfolge und Fehlerbehandlung.
Ein Event beschreibt, was fachlich passiert ist: OrderPlaced, PaymentCaptured oder ContractCancelled. Es ist kein versteckter Remote Procedure Call.
Schemas sind produktionsrelevante Schnittstellen. Änderungen müssen abwärtskompatibel geplant, dokumentiert und mit Consumer-Tests abgesichert werden.
Consumer müssen doppelte Zustellungen aushalten. Event-ID, Aggregate-ID, dedizierte Inbox/Outbox und nachvollziehbare Retry-Strategien sind zentrale Bausteine.
Eventual Consistency ist ein Designentscheid. Benutzeroberflächen, SLAs und Support-Prozesse müssen Verzögerungen und Zwischenzustände verständlich abbilden.
Betrieb
Verteilte Systeme brauchen Disziplin im Betrieb. Ohne Observability, klare Ownership und Resilienz werden kleine Services schnell zu grossen Abhängigkeiten.
Metriken, Logs und Traces mit Correlation IDs durch alle Services und Events führen. Dashboards sollten fachliche und technische Signale kombinieren.
Timeouts, Circuit Breaker, Bulkheads und Dead-Letter Queues verhindern Kaskadenfehler. Retries brauchen Limits, Backoff und klare Alarmierung.
Automatisierte Tests, Contract Checks, Datenbankmigrationen und progressive Releases reduzieren Risiko. Rollbacks dürfen kein Ausnahmeprozess sein.
Für jeden Service braucht es ein Team, eine Kontaktstelle, Runbooks, Service Level Objectives und klare Regeln für Breaking Changes.
Praktisch
Diese Fragen helfen, Architekturentscheidungen greifbar zu machen und Risiken früh sichtbar zu halten.