Verteilte Systeme entstehen nicht allein durch das Aufteilen einer Anwendung. Fachliche Grenzen, Nachrichtenverträge, Konsistenzmodelle, Fehlerverhalten und Beobachtbarkeit müssen gemeinsam entworfen werden.
Das Intensivformat verdichtet die Architektur-, GraphQL-, WebSocket- und Microservices-Seminare. Eine Plattform verbindet synchrone APIs, asynchrone Ereignisse, Echtzeitkanäle und föderierte Abfragen. Ausfälle, Duplikate und Verzögerungen gelten als normale Betriebszustände.
Inhaltsübersicht
- Lernziele
- Domänenschnitt und verteilte Verantwortlichkeiten
- CQRS, Events und zeitliche Konsistenz
- Messaging, RPC und Resilienz
- GraphQL, Federation und Echtzeitkanäle
- Verteilte Tests und Observability
- Durchgängiges Praxisprojekt: Verteilte Auftragsplattform
- Prüfpunkte und typische Fehler
Lernziele
- Fachdomänen und Bounded Contexts als Grundlage verteilter Verantwortlichkeiten schneiden.
- DDD, CQRS, Domain Events und Event Sourcing gezielt einsetzen.
- Synchrone sowie asynchrone Kommunikationsmodelle mit stabilen Verträgen gestalten.
- GraphQL Federation, Subscriptions und WebSockets sicher und skalierbar integrieren.
- Idempotenz, Outbox, Sagas, Timeouts, Wiederholungen und Circuit Breaker umsetzen.
- Logs, Metriken, Traces und Korrelationsdaten über mehrere Dienste verbinden.
Domänenschnitt und verteilte Verantwortlichkeiten
Jeder Dienst erhält eine eindeutige fachliche Verantwortung, eigene Datenhoheit und einen dokumentierten Vertrag zu abhängigen Kontexten.
- Geschäftsereignisse, Regeln und Begriffe der Beispieldomäne erfassen.
- Bounded Contexts, Upstream- und Downstream-Beziehungen festlegen.
- Aggregate, Transaktionsgrenzen und Datenhoheit je Kontext definieren.
- Synchrone und asynchrone Interaktionen nach Kopplung und Reaktionszeit bewerten.
- Kontextgrenzen in NestJS-Module und eigenständig betreibbare Dienste überführen.
- Verträge, Fehlerfälle und Verantwortlichkeiten in Architekturentscheidungen dokumentieren.
Entscheidungskriterien und Hinweise
- Datenbanken werden nicht serviceübergreifend als Integrationsschnittstelle geteilt.
- Dienstgrenzen entstehen aus Fachlichkeit und unabhängigen Änderungsgründen.
CQRS, Events und zeitliche Konsistenz
Commands, Queries und Domain Events strukturieren die Anwendungsfälle. Event Sourcing wird für einen ausgewählten Kontext eingesetzt; andere Dienste verwenden klassische Persistenz mit Outbox.
- Commands mit eindeutiger Absicht, Korrelation und idempotenter Identität entwerfen.
- Queries auf konkrete Leseanforderungen und getrennte Projektionen zuschneiden.
- Domain Events als unveränderliche fachliche Tatsachen veröffentlichen.
- Outbox und Inbox für atomare Veröffentlichung und Deduplikation einsetzen.
- Event Streams, Versionierung, Projektionen und Rebuild implementieren.
- Sagas mit Kompensation, Timeout und manueller Klärung modellieren.
Entscheidungskriterien und Hinweise
- Technische Zustellung und fachliche Wirkung werden getrennt betrachtet.
- Event Sourcing bleibt auf Kontexte mit begründetem Nutzen beschränkt.
Messaging, RPC und Resilienz
RPC, Commands und Events erhalten unterschiedliche Erwartungen an Antwort, Wiederholung, Reihenfolge und Fehlerbehandlung.
- Kommunikationsmatrix für Latenz, Kopplung, Volumen, Reihenfolge und Ausfalltoleranz erstellen.
- Synchrone RPC-Verbindung mit Timeout, Abbruch und Fehlerübersetzung implementieren.
- Asynchrone Commands und Events mit stabiler Nachrichtenhülle veröffentlichen.
- Retry mit Backoff, Jitter, Maximalversuchen und Dead-Letter-Behandlung konfigurieren.
- Idempotente Consumer und Deduplikationsspeicher aufbauen.
- Circuit Breaker, Bulkhead und Lastbegrenzung ergänzen.
- Duplikat, Verzögerung, Reihenfolgefehler und Nichterreichbarkeit testen.
Entscheidungskriterien und Hinweise
- Retries sind begrenzt und nach Fehlerklasse gesteuert.
- Consumer bleiben bei mindestens-einmaliger Zustellung fachlich idempotent.
GraphQL, Federation und Echtzeitkanäle
Der verteilte Zugriff wird über einen föderierten Graphen und gezielte Echtzeitkanäle bereitgestellt. Teilgraphen folgen den Domänengrenzen.
- Schema, Ownership, Entity-Schlüssel und Kompositionsregeln pro Teilgraph definieren.
- Referenzauflösung ohne versteckte Kaskaden und N+1-Zugriffe implementieren.
- Berechtigungen, Abfragekosten und partielle Fehler kontrollieren.
- Subscriptions mit authentifiziertem Verbindungsaufbau und mandantenfähigen Topics bereitstellen.
- WebSocket-Gateways für bidirektionale Interaktion, Räume und Präsenz ergänzen.
- Mehrere Instanzen über gemeinsamen Broker oder Adapter synchronisieren.
- Reconnect, verpasste Ereignisse, Backpressure und langsame Clients testen.
Entscheidungskriterien und Hinweise
- Echtzeitkanäle transportieren fachlich relevante Änderungen statt interner Tabellenereignisse.
- Federation darf zyklische Dienstabhängigkeiten nicht verdecken.
Verteilte Tests und Observability
Telemetrie wird so gestaltet, dass ein fachlicher Vorgang über HTTP, GraphQL, WebSocket und Messaging nachvollziehbar bleibt.
- Korrelations-, Kausalitäts- und Nachrichten-IDs über alle Transportwege weitergeben.
- Strukturierte Logs mit Dienst, Version, Kontext und fachlichem Ereignis erzeugen.
- Metriken für Latenz, Durchsatz, Fehler, Retry, Queue-Lag und Consumer-Zustand definieren.
- Traces über synchrone Aufrufe und asynchrone Nachrichten fortsetzen.
- Liveness, Readiness und Abhängigkeitszustände je Dienst getrennt abbilden.
- Contract-, Kompositions-, Komponenten- und End-to-End-Tests kombinieren.
- Fehlerfälle durch kontrolliertes Abschalten, Verzögern und Duplizieren prüfen.
Entscheidungskriterien und Hinweise
- Telemetrie verbindet technische Symptome mit fachlicher Auswirkung.
- Mehrdienst-Tests bleiben reproduzierbar und isoliert.
Durchgängiges Praxisprojekt: Verteilte Auftragsplattform
Eine Auftragsplattform wird in Auftrag, Bestand, Abrechnung und Benachrichtigung geschnitten. Der Zugriff erfolgt über einen föderierten Graphen; Statusänderungen werden über Events, Subscriptions und einen WebSocket-Kanal verteilt.
Ein Bestellablauf enthält Reservierung, Zahlung, Kompensation und Benachrichtigung. Das Labor simuliert langsame Dienste, Duplikate, Broker-Unterbrechung und einen fehlerhaften Projektionshandler.
- Bounded Contexts, Datenhoheit, Verträge und Kommunikationsmatrix festlegen.
- Commands, Queries, Events und eine Event-Sourcing-Projektion implementieren.
- Outbox, Messaging, idempotente Consumer und Saga für den Bestellablauf ergänzen.
- Föderierte Teilgraphen mit Entity-Auflösung und Kompositionsprüfung aufbauen.
- Authentifizierte Subscription und skalierbares WebSocket-Gateway bereitstellen.
- Timeouts, Retries, Dead-Letter-Behandlung, Circuit Breaker und Lastbegrenzung konfigurieren.
- Logs, Metriken und Traces zu einem vollständigen Ablauf korrelieren.
- Ausfall-, Duplikat-, Verzögerungs- und Wiederanlauftests durchführen.
Prüfpunkte und typische Fehler
- Jeder Dienst besitzt eine fachliche Verantwortung und eigene Datenhoheit.
- Transportauswahl folgt Nachrichtenbedeutung und Fehleranforderungen.
- Consumer sind idempotent.
- Sagas besitzen Timeout-, Kompensations- und manuelle Klärungspfade.
- Federation und Echtzeitkanäle verdecken keine zyklischen Abhängigkeiten.
- Telemetrie erlaubt die Rekonstruktion eines Vorgangs über alle Schritte.
Fachbereichsleitung und Trainerteam
-

Lucas Beich
Telefon: + 49 (221) 74740055
E-Mail: lucas.beich@seminar-experts.de -

Paul Goldschmidt
Telefon: + 49 (221) 74740055
E-Mail: paul.goldschmidt@seminar-experts.de
Seminardetails
| Dauer: | 5 Tage ca. 6 h/Tag, Beginn 1. Tag: 10:00 Uhr, weitere Tage 09:00 Uhr |
| Preis: |
Öffentlich oder Live Stream: € 2.995 zzgl. MwSt. Inhaus: € 8.500 zzgl. MwSt. |
| Teilnehmeranzahl: | min. 2 - max. 8 |
| Teilnehmer: | Erfahrene NestJS- und TypeScript-Entwickler, Softwarearchitekten, Plattformteams und technische Leitungen für verteilte Backend-Systeme |
| Voraussetzungen: | Sehr gute NestJS- und TypeScript-Kenntnisse, Erfahrung mit Datenbanken, REST, automatisierten Tests und asynchroner Verarbeitung |
| Standorte: | Stream Live, Inhaus/Firmenseminar, Berlin, Bremen, Darmstadt, Dresden, Erfurt, Essen, Flensburg, Frankfurt, Freiburg, Friedrichshafen, Hamburg, Hamm, Hannover, Jena, Kassel, Köln, Konstanz, Leipzig, Luxemburg, Magdeburg, Mainz, München, Münster, Nürnberg, Paderborn, Potsdam, Regensburg, Rostock, Stuttgart, Trier, Ulm, Wuppertal, Würzburg |
| Methoden: | Fachvortrag, Live-Coding, Demonstrationen, praktische Übungen und strukturierte Auswertung am System |
| Seminararten: | Öffentlich, Webinar, Inhouse, Workshop - Alle Seminare mit Trainer vor Ort, Webinar nur wenn ausdrücklich gewünscht |
| Durchführungsgarantie: | ja, ab 2 Teilnehmern |
| Sprache: | Deutsch - bei Firmenseminaren ist auch Englisch möglich |
| Seminarunterlage: | Dokumentation auf Datenträger oder als Download |
| Teilnahmezertifikat: | ja, selbstverständlich |
| Verpflegung: | Kalt- / Warmgetränke, Mittagessen (wahlweise vegetarisch) |
| Support: | 3 Anrufe im Seminarpreis enthalten |
| Barrierefreier Zugang: | an den meisten Standorten verfügbar |
| Weitere Informationen unter + 49 (221) 74740055 |
Seminartermine
Die Ergebnissliste kann durch Anklicken der Überschrift neu sortiert werden.
