Backend-Architektur

Ereignisgesteuerter Bestell-/Rechnungs-Microservice

Eine hoch skalierbare Microservice-Architektur, die Domain-Driven Design und das Outbox-Muster nutzt, um eine zuverlässige Nachrichtenzustellung zu gewährleisten.

The challenge

In einem verteilten System stellt die Gewährleistung der Datenkonsistenz über mehrere Dienste hinweg, ohne auf langsame verteilte Transaktionen (zweiphasige Commits) angewiesen zu sein, eine große architektonische Hürde dar. Beim Client kam es bei Ereignissen mit hohem Datenverkehr zu verlorenen Nachrichten und inkonsistenten Zuständen.

The solution

Wir haben den Kernauftrags- und Rechnungsfluss mithilfe einer ereignisgesteuerten Architektur neu gestaltet. Durch die Implementierung des Transactional Outbox-Musters haben wir eine mindestens einmalige Nachrichtenzustellung an Kafka/RabbitMQ garantiert. Wir haben alle Verbraucher so konzipiert, dass sie idempotent sind, um sicherzustellen, dass doppelte Nachrichten nicht zu doppelten Rechnungen oder einem beschädigten Status führen.