Die PostFinance betreibt mit dem Digital Commerce ein Payment-System im Schweizer Zahlungsmarkt und bildet damit einen der Grundpfeiler für elektronische Zahlungsverarbeitung in der Schweiz. Dem wachsenden Bedürfnis nach Near-Realtime Daten soll mit einer Data Centric Architecture begegnet werden. Ein erster Schritt dazu ist die Bereitstellung der Geschäftsdaten in einem Event-Stream.
Zur Replikation von Geschäftsdaten setzt PostFinance eine auf Datenintegration basierende Plattform ein. Diese wurde als Datenbank-Replikation mit Oracle GoldenGate umgesetzt und primär für Stammdaten konzipiert. Applikationen, welche Daten publizieren, schreiben in ein bereitgestelltes Datenbankschema. Empfänger-Applikationen erhalten ebenfalls je ein Datenbankschema bereitgestellt, welches eine Kopie der publizierten Daten führt. Die Replikationsplattform kopiert fortlaufend sämtliche Datenmutationen basierend auf den Transaktionslogs zu allen Konsumenten.
Das Technologieprodukt Apache Kafka erlaubt es, Daten auf einem zentralen Event-Broker für alle Konsumenten persistent in einem Event-Stream vorzuhalten. Ein solcher Ansatz könnte es erlauben, neben den Stammdaten auch Bewegungsdaten an einem zentralen Ort als Datenprodukt bereitzustellen.
In einer qualitativen Untersuchung wurde die heutige Datenreplikation aus Sicht des Digital Commerce untersucht. Mit Experteninterviews wurde das Wissen in der PostFinance aufgearbeitet. Zusammen mit Prinzipien einer Event-Driven Architektur wurde eine Replikationslösung basierend auf Apache Kafka konzipiert. Es wurde ein Anforderungskatalog erstellt und verschiedene Varianten dagegen validiert. Die gewählte Konzeption wurde schliesslich in einer Referenzimplementation als Proof of Concept (PoC) umgesetzt.
Die Basis der Konzeption bildet ein Event-Carried State Transfer (ECST) mittels State Events. Die Lösung verwendet im Producer eine Transactional Outbox. Dazu werden auf den Oracle Datenbanken Advanced Queues eingesetzt. Aufgrund der Anforderung von komplexen Datenobjekten sowie möglichen Massenmutationen wurde ein datenbankseitiges JSON-Rendering für die Events in der DB-Queue gewählt. Die Events werden im Producer von einem Message-Relay über die JMS-API konsumiert und in einem Anti-Corruption Layer (ACL) auf das öffentliche Event-Format der Producer-Topics übersetzt und publiziert. Consumer-Applikationen materialisieren die Events in ein lokales Replikat.
Mit dem PoC konnte eine lauffähige Implementierung erstellt werden, welche die heutige Datenbank-Replikation ersetzen kann. Die Lösung eröffnet neue Anwendungsfälle wie Real-Time Analytics oder eine hochverfügbare Real-Time-Transaktionssicht für Kund:innen.