Kundenbindungsplattform für 25 Millionen Kunden
Eine B2B2C-Loyalty- und CRM-Plattform mit 25 Millionen eindeutigen Kunden und 800 Millionen Rechnungsdatensätzen — modernisiert von .NET Framework auf .NET 9 und in Domain-Services aufgeteilt.
Datenladezeiten der Seiten bis zu 30-mal schneller, das Produkt auf .NET 9, die Architekturmigration zu rund 70 % abgeschlossen.
Das Problem
Eine Loyalty- und CRM-Plattform, die über Jahre auf .NET Framework 4.7 und einer SQL-Server-Datenbank gewachsen war, der sie längst entwachsen war. Hinter den Oberflächen lagen rund 25 Millionen eindeutige Kunden (etwa 60 Millionen nicht eindeutige Datensätze), 800 Millionen Rechnungsdatensätze und über eine Milliarde SMS-Datensätze — und die Seiten luden so langsam, dass sie kaum noch geöffnet wurden.
Das Produkt konnte nicht angehalten und neu geschrieben werden. Jede Änderung musste unter einem System stattfinden, das täglich von Unternehmen und deren Kunden genutzt wurde.
Ich war Hauptentwickler des Produkts und habe die architektonischen Entscheidungen sowie die Umsetzung weitgehend verantwortet.
Modernisierung. Von .NET Framework 4.7 auf .NET 8, dann auf .NET 9. Ein Refactoring statt einer reinen Portierung: Ziel war, das System danach ändern zu können, nicht nur auf einer unterstützten Runtime zu laufen.
Performance. Systematische Arbeit an der gesamten Anwendung statt der Suche nach einem einzelnen Hotspot. Datenladezeiten der Seiten wurden in den schlechtesten Fällen bis zu 30-mal schneller — vor allem, indem korrigiert wurde, was Queries und Schema von der Datenbank verlangten, und nicht durch zusätzliche Caches darüber.
Architektur. In der letzten Phase habe ich die Produkte des Unternehmens, zuerst den Kundenclub, auf eine konsolidierte Architektur umgestellt: Vertical Slice auf Basis von Clean Architecture, nach Domänen geschnitten, mit RabbitMQ für Messaging und gRPC zwischen den Services. Es handelt sich um eine modulare, nach Domänen geschnittene Architektur mit Messaging, nicht um Microservices im großen Maßstab; bei meinem Weggang waren rund 70 % migriert.
Fachlichkeit. Kundensegmentierung mit mehreren Verfahren, unter anderem RFM, Mandantenfähigkeit und die darunterliegenden ereignisgesteuerten Abläufe. Tests wurden auf Unit-, Integrations- und UI-Ebene geschrieben.
Zwei weitere Entwickler kamen später zum Produkt; ich habe sie eingearbeitet und betreut.