Event-Schemas weiterentwickeln, ohne Consumer zu brechen

Event-getriebene Systeme entkoppeln Dienste wunderbar — bis du das Schema eines Events ändern musst. Plötzlich arbeitet die Entkopplung gegen dich. Producer und Consumer werden unabhängig deployed, Nachrichten verweilen stunden- oder tagelang in einer Queue, und es gibt kein HTTP 422, das dir sagt, dass etwas kaputt ist. Falsch gemachte Schema-Änderungen korrumpieren stillschweigend den Zustand oder lassen Worker um 2 Uhr nachts abstürzen.

Dies ist kein Tooling-Problem, das du durch die Wahl des richtigen Message Brokers löst. Es ist ein Disziplin-Problem. Hier ist das Framework, das ich anwende, bevor ich in Produktion ein Event-Schema anfasse.