Spring GDS 25. Jubiläum
Ein Logistikunternehmen, das in 190 Länder versendet, hat etwas gebaut, um an sich selbst zu liefern.
Ereignisgesteuerte Architektur ist eine Art, Systeme zu bauen, bei der Komponenten kommunizieren, indem sie Events erzeugen und auf sie reagieren, statt einander direkt aufzurufen. Ein Dienst tut etwas, kündigt an, dass es geschehen ist, und macht weiter. Andere Dienste lauschen auf diese Ankündigung und handeln danach. Der Erzeuger weiß nie und kümmert sich nie darum, wer zuhört, was die Teile lose gekoppelt hält.
Vergleichen Sie es mit dem Request-Response-Modell, das die meisten APIs nutzen, bei dem ein Dienst einen anderen aufruft und auf eine Antwort wartet. Das funktioniert, bindet die Dienste aber eng aneinander. Ist der aufgerufene Dienst langsam oder ausgefallen, steckt der Aufrufer fest. In einem ereignisgesteuerten Setup kann ein Bestelldienst ein "Bestellung aufgegeben"-Event veröffentlichen, und die Dienste für Abrechnung, Bestand und E-Mail reagieren jeder in seiner eigenen Zeit. Wenn ein Kunde in einem Online-Shop auscheckt, kann dieses eine Event eine Zahlung, eine Bestandsminderung und eine Bestätigungs-E-Mail auslösen, ohne dass der Checkout-Ablauf auf eines davon wartet.
Der Kompromiss ist Komplexität. Ein Ablauf, der eine gerade Linie war, wird zu einem Geflecht aus Reaktionen, das schwerer zu verfolgen und zu debuggen ist. Sie müssen auch an Reihenfolge, doppelte Events und das denken, was passiert, wenn ein Verbraucher ausfällt. Der Lohn sind Systeme, die unabhängig skalieren und Last abfangen, da Events sich aufstauen und verarbeitet werden können, wenn die Verbraucher bereit sind, statt eine synchrone Aufrufkette zu überlasten.
Wir greifen zu ereignisgesteuerten Mustern, wo sie ihren Platz verdienen, meist wenn ein System mehrere Aufgaben hat, die nach einem Auslöser unabhängig geschehen können. Ein Retail-Kunde brauchte einen Checkout, der schnell blieb, während sich ein wachsender Stapel nachgelagerter Arbeit dahinter auftürmte: Betrugsprüfungen, Fulfilment, Treuepunkte, Analytics. Wir verlagerten diese Arbeit hinter Events, damit der kundenseitige Pfad flott blieb und jeder nachgelagerte Dienst eigenständig skalieren und ausfallen konnte, ohne den Rest mitzureißen.
Es ist nicht die richtige Antwort für jedes Projekt, und das sagen wir ehrlich, denn die Debugging-Kosten sind real. Wenn es passt, stützt sich unsere Arbeit an API-Integration und Plattformintegration darauf, um Systeme zu verbinden, die nicht aufeinander warten sollten. Wir entwerfen die Events, die Verträge und die Fehlerbehandlung im Voraus, damit die lose Kopplung ein Aktivposten bleibt, statt zu einem System zu werden, dem niemand folgen kann.
Haben Sie Systeme, die aufeinander reagieren sollten, ohne Schlange zu stehen? Entwerfen wir den Ablauf.
Ein Logistikunternehmen, das in 190 Länder versendet, hat etwas gebaut, um an sich selbst zu liefern.
Eine Marke in ein funktionierendes Geschäft verwandeln.
Eine halbe Million Menschen. Eine App. Null Chaos.















