II) Versionierungskonzept FINE-SSTs

1. Präambel

Jede FINE-Schnittstelle unterliegt einem Versionierungskonzept und unterscheidet dabei zwischen Major und Minor Upgrades. Minor Upgrades sind immer rückwärtskompatibel - Major Upgrades nicht. Dementsprechend gibt es unterschiedliche Regelungen zu beachten, die im folgenden beschrieben sind.

2. Minor Upgrades

Minor Upgrades sind immer rückwärtskompatibel, ohne dass alle SST-Partner ihre Artefakte neu generieren müssen. Ihr Sinn liegt darin, eine leichte Erweiterbarkeit zu gewährleisten ohne aufwändige Abstimmungen mit allen SST-Partnern im Netzwerk durchführen zu müssen. Gleichzeitig müssen unnötige Störungen vermieden werden. Nachrichten mit einer neuen Minor Version können in den vorhandenen Queues/Endpunkten versendet werden, ohne dass ein Empfänger Probleme bekommt (bzw. bekommen darf). Es bewahrt aber niemanden davor, Minor Upgrades gut zu durchdenken und eventuelle Auswirkungen mit anderen SST-Partnern abzusprechen.

Beispiele: optionales Feld hinzufügen, ENUM erweitern

Technische Aspekte

Geschäftsobjekte neuerer Minor Versionen werden in den gleichen Topics bzw. gleichen REST-Endpunkten verteilt wie die vorige Version. Ein Minor Upgrade darf dennoch nicht zu einem Validierungsfehler führen.

Ein SST-Anbieter muss sich für eine Version der Verteilung der JSON-Schema-Versionen entscheiden und diese umsetzen: 1. Kafka: Schema-Registry ist bei Kafka inklusive muss auf “rückwärtskompatibel” gesetzt werden Eine Version ist eine bei 1 beginnende Zahl, die hochgezählt wird Jeder Empfänger benötigt einen API-Key für den Abruf des Schemas Die Info über die Minor-Version steht pro Message im Kafka-Header 2. REST: spezielle URL bietet Abruf des Schemas muss durch Sender bereitgestellt werden

Fachliche Aspekte/Anwendungs-Logik

Grund-Philosophie: “Wer nicht betroffen ist, den darf ein Minor Upgrade nicht stören”. Wenn ein bisher unerwarteter Wert übertragen wird, hat ein empfangendes System folgende Möglichkeiten:

  1. Bei “Durchreichungs-Logik”: einfach weiterleiten

  2. Bei Logik, die Entscheidungen trifft: Fehler in SST zurückmelden (out of scope im Versionierungskonzept, noch nicht geklärt)

Perspektiven Sender vs. Empfänger
  1. Sender bzw. Owner: kann ein Upgrade selbständig planen informiert die Empfänger (s.u. Organisation) muss keine alten Versionen unterstützen

  2. Empfänger bzw. Nicht-Owner: muss mit unerwarteten Minor-Upgrades rechnen muss damit rechnen, dass es nicht jeder Sender zeitgleich das Upgrade durchführt. Das bedeutet, dass es mehrere Minor Versionen des gleichen Geschäftsobjekt im Netzwerk geben kann.

Organisatorische Regelungen/Spielregeln

Der Verursacher eines Minor-Upgrades muss die Information darüber verteilen.

  1. mindestens 1 Tag bei trivialen Änderungen (Voraussetzung: die automatische Verteilung der Versionen ist gelöst, s.o.)

  2. ansonsten Projektkontext beachten

  3. grundsätzlich immer “Flash” beachten!

  4. ein Upgrade anderer Sender wird innerhalb von 3 Monaten erwartet

Problematik: Sender, welche nicht schritthalten senden veraltete Minor-Versionen, ohne dass es auffällt. Maßnahme: zunächst nur organisatorisch regelmäßig prüfen und Sender zu Upgrade “anregen”. Trägt dies langfristig nicht, ist eine andere organisatorische Maßnahme zu verabschieden - z.B. jährliche zwangsweise “Patch-Days” für alle Teilnehmer.

3. Major Upgrades

Major upgrades sind nicht rückwärtskompatible, strukturelle Änderungen, die mindestens eine technische Änderung benötigen. Diese müssen in separaten Queues/Endpunkten bereit gestellt werden.

Beispiele: Feld entfernen, Feld ändert Bedeutung, Feld wird zu Pflichtfeld, Umstrukturierung im JSON-Schema, ENUM verkleinern

Technische Aspekte

Für neue Versionen von Geschäftsobjekten werden vom Sender unterschiedliche Topics bzw. REST-Endpunkten verwendet. Damit ist sowohl die Bereitstellung der vorigen Versionen gewährleistet als auch ein stufenweises Upgrade ermöglicht.

  1. Kafka: Separate Topics pro Major-Version - Name des Topics enthält Major-Version (Übergangsregelung: Topic ohne Nummer entspricht Major-Version 1)

  2. REST: Mit unterschiedlichen URLs arbeiten oder mit HTTP-Header -→ muss mit besprochen werden, da nur LP + LSAS REST-SST anbieten

Fachliche Aspekte

Eine Änderung von Fachlichkeit bzw. Anwendungs-Logik muss vorher vom Anforderer bzw. Upgrade-Verursacher kommuniziert worden sein. Ansonsten darf ein Upgrade nicht durchgeführt werden.

Perspektive Sender vs. Empfänger
  1. Sender bzw. Owner: muss das OK aller Empfänger abholen muss sich auch mit allen andern Sendern des gleichen Objekttyps abstimmen und einen Upgrade-Plan besprechen, damit alte Major-Versionen zeitnah aus dem Netzwerk verschwinden

  2. Empfänger bzw. Nicht-Owner: Muss sich darauf einstellen, anhand des Senders zu unterscheiden, ob jeweils die neue oder alte Version zu verarbeiten ist (“Demultiplexing”)

Organisatorische Regelungen/Spielregeln

Die vorige Version ist weiterhin bereitzustellen und ein Ablösungsverfahren (im Projektkontext) abzustimmen, welches auf eine möglichst schnelle Ablösung zielen muss.

Last updated: Fri, 25 Apr 2025 01:44:50 UTC