Blockchain-Technologie

Batch Mapper in RailsEventStore: Von der Idee zum leistungsstarken Feature für effizientes Event Handling

Blockchain-Technologie
Batch mapper in RailsEventStore – how initial idea evolved into feature

Entdecken Sie, wie der Batch Mapper in RailsEventStore aus einer Nutzeridee entstand und heute als experimentelles Feature die Performance bei der Verarbeitung verschlüsselter Events maßgeblich verbessert. Erfahren Sie, warum Batch-Verarbeitung in Event Stores wichtig ist und wie dieser innovative Ansatz Entwickler bei großen Datenmengen unterstützt.

RailsEventStore hat sich in der Ruby on Rails Community als zuverlässiges Werkzeug für die Event-Sourcing-Implementierung etabliert. Die stetige Weiterentwicklung der Bibliothek zielt dabei nicht nur auf Stabilität, sondern auch auf die Optimierung der Performance und Entwicklerfreundlichkeit ab. Ein spannendes Beispiel dafür ist das Feature des Batch Mappers, dessen Entstehungsgeschichte exemplarisch zeigt, wie reale Anwenderbedürfnisse zur Erweiterung eines Frameworks führen können und welche Vorteile dies für die gesamte Community bringt. Der Ursprung des Batch Mappers hängt eng mit einem konkreten Performance-Problem zusammen, das ein Anwender namens Bert in seinem Projekt mit RailsEventStore erlebte. Sein Event Store enthielt eine große Menge an verschlüsselten Ereignisdaten.

RailsEventStore bot mit dem EncryptionMapper zwar eine Möglichkeit zur automatischen Verschlüsselung und Entschlüsselung von Domain-Events, doch genau diese Einfachheit führte in Berts Fall zu erheblichen Performance-Einbußen. Die Ursache lag darin, wie der Verschlüsselungsprozess organisiert war: Für jede einzelne Event-Instanz wurde der Schlüssel aus einer externen Schlüsselverwaltungssoftware (KMS) abgefragt, was bei einer großen Menge an Events eine enorme Anzahl an Netzwerkaufrufen bedeutete. Dieses Problem fiel nicht nur in der Praxis von Bert auf, sondern thematisiert einen häufigen Engpass bei der Arbeit mit verschlüsselten Daten in Event Stores. Es geht dabei um den Balanceakt zwischen Sicherheit, Performance und Skalierbarkeit. Einerseits sind lokale Zwischenspeicherungen von Schlüsseln problematisch, da sie den Schutz sensibler Daten gefährden könnten.

Andererseits führt jede externe Abfrage zu einem deutlichen Flaschenhals, wenn viele Events zu verarbeiten sind. Bert schlug daraufhin in einem Pull Request (PR) eine neue Implementierung vor, welche das Konzept der Batch-Verarbeitung von Events in den Mapper einführt. Statt jeden Event einzeln zu bearbeiten, sollten diese in Gruppen verarbeitet werden. Das bedeutete, dass vor der Transformation der Events gemeinsam alle benötigten Schlüssel aus dem KMS auf einmal abgefragt werden konnten. Ein solcher „Batch Mapper“ reduziert die Anzahl der Zugriffe auf das externe System drastisch und beschleunigt dadurch die Verarbeitung enorm.

Das RailsEventStore-Team nahm Bert’s Vorschlag als Ausgangspunkt für eine intensive Prüfung und Erweiterung auf. In diesem Prozess setzten sie auch Mutant-Tests ein, eine spezielle Form automatisierter Tests, um die Robustheit und Qualität des neuen Codes sicherzustellen. Daraus entstand eine optimierte Batch-Mapping-Funktionalität, die als experimentelles Feature implementiert wurde. Damit ist das neue API zwar noch nicht final stabil, ermöglicht jedoch frühe Tests in produktiven Umgebungen und liefert wertvolles Feedback zur weiteren Entwicklung. Die technische Umsetzung des Batch Mappers basiert auf einem simplen, aber wirkungsvollen Prinzip: RailsEventStore liest Events sowieso in Batches aus der Datenbank.

Das war schon immer so, nur wurden diese in der Mapper-Schicht wieder einzeln verarbeitet. Wenn man jedoch direkt die Batterien, also Gruppen von Events, übernimmt und diese gemeinsam transformiert, lassen sich Operationen viel effizienter gestalten. Aktuelle Mapper in RailsEventStore besitzen die Methoden record_to_event und event_to_record, welche einzelne Datenbankeinträge beziehungsweise Events in die jeweils andere Form umwandeln. Die neue Schnittstelle erweitert dies um records_to_events und events_to_records und akzeptiert somit Gruppen von Events auf einmal. Das ermöglicht Mappern, die die Batch-Verarbeitung implementieren, ihre Logik auf diese Menge anzuwenden und speziell beim Zugriff auf externe Schlüssel-Repositorien deutlich weniger API-Aufrufe zu tätigen.

Trotz der Einführung des neuen Features wurde von den Entwicklern großer Wert auf Rückwärtskompatibilität gelegt. Viele Projekte nutzen RailsEventStore in umfangreichen und heterogenen Codebasen, deshalb sollen Updates nahtlos erfolgen können, ohne dass Entwickler ihren Code anpassen müssen. Um das zu erreichen, schirmt die Bibliothek Mapper, die nur Einzelverarbeitung unterstützen, intern mit der Klasse BatchMapper ab. Diese übernimmt das iterative Verarbeiten von einzelnen Events in Batches, sodass alle erwähnten Vorteile von der Framework-Seite ausgegeben werden, ohne dass die bestehende Implementierung geändert werden muss. Wenn ein Mapper hingegen bereits Batch-Verarbeitung unterstützt, wird dieser direkt verwendet.

Dadurch haben Entwickler die Freiheit, entweder die bestehende Einzelverarbeitungs-Logik beizubehalten oder vorhandene Mapper selbst um Batch-Funktionalität zu erweitern. Das Resultat aus dieser Flexibilität ist letztlich eine bessere Performance für alle Nutzer – vor allem bei Systemen mit sehr vielen Events und externen Schlüsselmanagementsystemen. Ein Beispiel verdeutlicht die Vorteile: Ein benutzerdefinierter EncryptionMapper überschreibt durch Batch-Verarbeitung die Methoden records_to_events und events_to_records, um vor der eigentlichen Konvertierung alle benötigten Schlüssel auf einmal aus dem KMS zu holen. Das reduziert einzelne Netzwerkaufrufe und hält gleichzeitig den Speicherbedarf niedrig, da nicht alle Schlüssel dauerhaft gecacht werden müssen. Ein solcher Ansatz bringt deutliche Zeitersparnis und verhindert, dass der Event Store bei zunehmendem Datenvolumen langsamer wird.

Die Relevanz dieses Features geht aber über das konkrete Verschlüsselungsproblem hinaus. Batch-Verarbeitung spiegelt einen grundlegenden Trend in der Softwareentwicklung wider, der auf Effizienz und Skalierbarkeit zielt. Besonders im Event Sourcing und Domain-Driven Design, wo große Mengen an Domain-Events die zentrale Rolle spielen, sind performante Mapper ein kritischer Faktor für die Gesamtsystem-Performance. Darüber hinaus eröffnet der Batch Mapper Raum für weitergreifende Optimierungen, wie beispielsweise komplexere Caching-Strategien, parallele Datenverarbeitung und bessere Integration mit externen Services. Auch für zukünftige Erweiterungen wie asynchrone Read-Model-Bildungen kann das Konzept von Batch-Verarbeitung einen wichtigen Beitrag leisten.

Ein weiterer Vorteil ist die verbesserte Testbarkeit. Da ganz Batches von Events verarbeitet werden, lassen sich Tests präziser und umfassender gestalten. Zusätzlich ermöglichen die neuen APIs differenziertere Fehlerbehandlungen und ermöglichen Optimierungen im Fehlerfall auf Batch-Ebene. Entwickler, die RailsEventStore bereits heute nutzen oder planen, die Bibliothek in ihren Projekten einzusetzen, sollten die experimentelle Batch-Mapper Funktion im Auge behalten. Das Feature ist zwar noch im stabilen Entwicklungsstadium, bietet aber einen klaren Mehrwert vor allem dann, wenn große Event-Mengen mit aufwändigen Operationen wie etwa Verschlüsselung oder Transformation verbunden sind.

Automatischer Handel mit Krypto-Geldbörsen Kaufen Sie Ihre Kryptowährung zum besten Preis

Als Nächstes
Wall Street’s hottest ETF hits $70B five times faster than S&P 500 and gold ETFs
Montag, 01. September 2025. Bitcoin-ETF von BlackRock schreibt Geschichte: $70 Milliarden in Rekordzeit erreicht

Der iShares Bitcoin Trust von BlackRock hat als bislang schnellster ETF der Geschichte die Marke von 70 Milliarden US-Dollar verwaltetem Vermögen überschritten und damit etablierte ETFs wie den S&P 500 und Gold-ETFs bei weitem überholt. Was steckt hinter diesem rasanten Wachstum und welche Auswirkungen hat dies auf den Finanzmarkt und die institutionelle Annahme von Kryptowährungen.

Cardano considers offloading $100M ADA to jumpstart lagging DeFi and stablecoin ecosystem
Montag, 01. September 2025. Cardano plant den Einsatz von 100 Millionen USD ADA zur Belebung von DeFi- und Stablecoin-Ökosystem

Cardano erwägt eine bedeutende strategische Maßnahme, um die stagnierende DeFi- und Stablecoin-Landschaft zu beleben. Im Fokus steht die Nutzung von 100 Millionen US-Dollar in ADA aus dem Netzwerk-Treasury, um durch gezielte Investitionen in Stablecoins und Bitcoin das Ökosystem nachhaltiger und wettbewerbsfähiger zu gestalten.

Why Is Crypto Down Today? – June 13, 2025
Montag, 01. September 2025. Warum ist der Kryptomarkt am 13. Juni 2025 im Tief? Analyse und Ausblick

Ein umfassender Blick auf die aktuellen Kursrückgänge im Kryptomarkt, die zugrundeliegenden Ursachen und mögliche Perspektiven für Investoren im Jahr 2025.

What Is Cryptocurrency and How Does It Work?
Montag, 01. September 2025. Kryptowährungen verstehen: Digitale Währungen und ihre Funktionsweise erklärt

Ein umfassender Leitfaden zu Kryptowährungen, der deren Grundlagen, Funktionsweise, Unterschiede zu traditionellen Währungen und die Bedeutung der Blockchain-Technologie erläutert. Ideal für alle, die in die Welt der digitalen Währungen eintauchen möchten.

How was the wheel invented? Computer simulations reveal its unlikely birth
Montag, 01. September 2025. Die erstaunliche Entstehung des Rades: Wie Computersimulationen die Geburt einer Weltrevolution enthüllen

Die Geschichte der Erfindung des Rades ist faszinierend und komplex. Moderne Computersimulationen werfen neues Licht auf die schrittweise Entwicklung dieses bedeutendsten technischen Fortschritts der Menschheit und erklären, wie einfache Holzrollen zur revolutionären Rad- und Achskonstruktion wurden.

Chicago's Refusal to Deal with Its Nearly Empty Schools
Montag, 01. September 2025. Chicago und seine fast leeren Schulen: Ein Blick auf das Dilemma der Schulschließungen

Chicago kämpft mit dem Problem zahlreicher unterbelegter Schulen, die hohe Kosten verursachen und den Schülern begrenzte Bildungsmöglichkeiten bieten. Die komplexe Lage zeigt, wie politische Entscheidungen, gesellschaftliche Faktoren und demografische Veränderungen das Bildungssystem der Stadt prägen.

Show HN: I tried Xcode 26 AI Coding Assistance on a real iOS app [video]
Montag, 01. September 2025. Xcode 26 und KI-Coding: Ein Realtest in der iOS-App-Entwicklung

Die Integration von KI-gesteuerter Unterstützung in Xcode 26 revolutioniert die iOS-App-Entwicklung. Ein praktischer Test zeigt, wie Entwickler von den neuen Funktionen profitieren und welche Auswirkungen das auf den Entwicklungsprozess hat.