Fintech-Architektur: Die nicht verhandelbaren Grundlagen

·11 Min. Lesezeit

In den meisten Systemen ist ein Bug ein Vorfall. Im Fintech ist ein Bug eine Verbindlichkeit, die möglicherweise schon Geld gekostet hat, ohne dass es jemand bemerkt hat.

Fintech-Architektur hat eine kleine Zahl wirklich nicht verhandelbarer Entscheidungen. Macht man sie falsch, holt keine spätere Entwicklungsarbeit das vollständig auf — man erbt ein System, in dem Geld lautlos falsch sein kann, und das ist der eine Fehlermodus, den ein Finanzprodukt nicht verkraftet.

1. Salden werden abgeleitet, nie als Wahrheit gespeichert

Der mit Abstand häufigste und schädlichste Fehler ist eine veränderbare Saldo-Spalte, die Code direkt aktualisiert. Das ist bequem, schnell und nicht wiederherstellbar: Läuft sie auseinander, lässt sich nicht mehr feststellen, was sie hätte sein sollen.

Das korrekte Modell ist ein Append-only-Journal von Buchungen. Nichts wird je aktualisiert oder gelöscht; Korrekturen sind neue Gegenbuchungen. Der Saldo ist die Summe der Buchungen — für Performance gecacht, aber jederzeit aus dem Journal rekonstruierbar.

Veränderbarer SaldoAppend-only-Ledger
UPDATE accounts SET balance = balance - 100INSERT Buchung (Soll 100), INSERT Buchung (Haben 100)
Historie geht bei jedem Schreibvorgang verlorenVollständige Historie per Konstruktion
Abweichung ist unentdeckbar und nicht reparierbarJeder Zustand zu jedem Zeitpunkt reproduzierbar
Nebenläufigkeitsfehler beschädigen den Zustand dauerhaftDie doppelte Buchführung fängt Fehler ab
Audit heißt Anwendungslogs lesenAudit heißt das Ledger lesen

2. Jeder Geldpfad ist idempotent

Netzwerke wiederholen. Nutzer doppelklicken. Zahlungsanbieter liefern Webhooks mehr als einmal — das ist dokumentiertes Verhalten, kein Randfall. Jede Operation, die Geld bewegt, muss gefahrlos wiederholt ausführbar sein.

  • Jede Geldoperation trägt einen vom Aufrufer gelieferten Idempotency Key, eindeutig pro logischer Absicht
  • Der Schlüssel wird mit Eindeutigkeits-Constraint gespeichert, bevor Seiteneffekte eintreten, nicht danach
  • Ein wiederholter Schlüssel gibt das ursprüngliche Ergebnis zurück, statt die Arbeit erneut auszuführen
  • Webhook-Handler speichern die Rohdaten mit der Provider-Event-ID als Schlüssel und verarbeiten danach — so wird eine erneute Zustellung auch mitten in der Verarbeitung erkannt

3. Geld sind Ganzzahlen in Minor Units

Fließkommazahlen können Dezimalbrüche nicht exakt darstellen, deshalb akkumuliert Arithmetik auf Float-Geld Fehler. Speichern Sie Minor Units als Ganzzahlen (oder als Dezimaltyp mit fester Präzision) und machen Sie die Währung an jedem Betrag explizit — ein Betrag ohne Währung ist ein Bug, der auf den ersten internationalen Kunden wartet.

4. Abstimmung ist ein Feature, kein Nachgedanke

Gehen Sie von Abweichungen zwischen Ihrem Ledger und dem Zahlungsanbieter aus — sie werden auftreten, durch Timeouts, Teilausfälle und Korrekturen auf Anbieterseite. Die Frage ist, ob Sie sie bemerken.

  • Ein geplanter Job, der internen Zustand gegen die Settlement-Daten des Anbieters vergleicht
  • Alarmierung bei Abweichung, mit definiertem Verantwortlichen und Runbook
  • Ein definierter Auflösungsweg — Gegenbuchungen, niemals stille Anpassung
  • Sweeps für hängende Zustände: Transaktionen, die länger als vorgesehen pending sind

5. Isolierung, in beiden Bedeutungen

  • Mandantenisolierung — auf Datenebene erzwungen, nicht in der Hoffnung, dass jede Query den richtigen Filter enthält
  • Fehlerisolierung — ein langsamer Anbieter darf nicht den Request-Pool erschöpfen und unbeteiligte Funktionalität lahmlegen
  • Umgebungsisolierung — niemals Testtransaktionen in Produktions-Ledgern

6. Bauen Sie für das Audit, das irgendwann kommt

Nein. Es liefert technische Feststellungen im vereinbarten Umfang. Rechtliche Bewertung und formelle Zertifizierung erfordern entsprechend qualifizierte Prüfer.

  • Unveränderlicher Audit-Trail, wer wann was getan hat — einschließlich interner Admin-Aktionen
  • Kartendaten berühren Ihre Server nie, es sei denn, Sie wollen wirklich PCI-konform sein (nutzen Sie Hosted Fields oder eine Hosted Page)
  • Aufbewahrung und Löschung, die auf Anfrage tatsächlich ausführbar sind
  • Zugriffskontrolle, die überprüfbar ist — wer Geld bewegen darf, wer es genehmigt hat
In gewöhnlicher Software optimieren Sie auf Änderungsgeschwindigkeit. Im Fintech optimieren Sie darauf, später exakt beweisen zu können, was passiert ist und warum.

Die fünf Fragen an Ihr eigenes System

  1. Wenn dieser Webhook zweimal ankommt, ändert sich beim zweiten Mal irgendetwas?
  2. Kann ich den Saldo jedes Kunden zu jedem vergangenen Zeitpunkt allein aus dem Ledger rekonstruieren?
  3. Würden wir eine Abweichung zum Anbieter bemerken — oder würde ein Kunde es uns sagen?
  4. Kann eine präparierte Anfrage das Geld eines anderen Mandanten lesen oder bewegen?
  5. Wenn ein Regulierer fragte, wer im vergangenen März eine manuelle Anpassung genehmigt hat — könnten wir das in Minuten beantworten?

Transaktionsannahme und Abwicklung unterscheiden

Zahlungszustände müssen verspätete und wiederholte Ereignisse abbilden. Finanzielle Einträge und den kontrollierten Korrekturablauf gemeinsam prüfen.

  1. Exakte Dezimal- oder ganzzahlige Untereinheiten mit Währungsregeln verwenden.
  2. Anbieterereignisse zuordnen, ohne Wiederholungen doppelt zu verbuchen.
  3. Originaleinträge erhalten und freigegebene Korrekturen nachvollziehbar dokumentieren.

Häufige Fragen

Brauchen wir ein doppeltes Ledger für ein einfaches Fintech-Produkt?

Wenn Sie Salden halten oder Geld für Nutzer bewegen: ja. Das Append-only-Journal ist keine buchhalterische Formalität — es macht Zustände rekonstruierbar und Fehler erkennbar. Es nachzurüsten, nachdem Salden auseinandergelaufen sind, ist weit schwerer, als damit zu beginnen.

Was ist der häufigste ernste Mangel in frühen Fintech-Systemen?

Veränderbare Salden ohne Journal, dicht gefolgt von fehlender Idempotenz auf Zahlungs- und Webhook-Pfaden. Beides erlaubt es, dass Geld lautlos falsch wird — der Fehlermodus, der am schwersten zu entdecken und am schwersten nachträglich zu beheben ist.

Sollen wir Kartendaten selbst speichern?

Mit ziemlicher Sicherheit nicht. Nutzen Sie Hosted Fields oder eine Hosted Payment Page des Anbieters, damit Kartendaten Ihre Server nie erreichen. Selbst damit umzugehen zieht Ihre gesamte Infrastruktur in den PCI-DSS-Geltungsbereich, was eine erhebliche dauerhafte Compliance- und Auditlast bedeutet.

Wann sollte ein Fintech-Startup ein Architektur-Audit machen?

Vor dem ersten deutlichen Volumenanstieg und vor jeder Finanzierungsrunde, in der technische Due Diligence zu erwarten ist. Die obigen strukturellen Entscheidungen sind früh günstig zu prüfen und teuer zu korrigieren, sobald echtes Geld durch das System geflossen ist.

Hat jede Währung zwei Nachkommastellen?

Nein. Genauigkeit und Rundung nach Währung und Operation bestimmen und Anbietervorgaben prüfen. Binäre Gleitkommazahlen vermeiden, wenn exakte Dezimalrechnung nötig ist.

Wollen Sie das gegen Ihr System prüfen lassen?

Wir auditieren Fintech-Architektur genau gegen diese Liste — Ledger-Integrität, Idempotenz, Abstimmung, Isolierung.

Fintech-Audit →

Weiterführend

Technische Due Diligence für Investoren: Der vollständige Leitfaden

Technische Due Diligence ist kein Code-Review. Sie beantwortet eine Frage: Was kostet es, diese Technologie dorthin zu bringen, wo die Investmentthese sie braucht?

Architektur-Audit: Wann Sie eines brauchen und was es findet

Ein Architektur-Audit ist keine Meinung über Ihren Tech-Stack. Es ist eine Karte davon, wo das System unter dem Plan bricht, den Sie tatsächlich haben.