Als Betreiber eines der größten Ladenetze für Elektromobilität (über 700.000 Ladepunkte in Europa) bietet EnBW den Endkunden eine mehrfach preisgekrönte App an. Damit erhalten die Endkunden in Echtzeit Informationen über Ladesäulen in der Nähe ihres derzeitigen Aufenthaltsortes, über deren Verfügbarkeit, Ladezeiten etc. Mit der App können sie dann auch Ladevorgänge starten und die Abrechnungen einsehen. Außerdem ist es möglich, Tarife auszuwählen und den eigenen Vertrag zu verwalten.
Die hohe Kundenzufriedenheit mit dieser App basiert auf der absoluten Zuverlässigkeit der Plattform. Das ist auch einer der Gründe, warum die Kundenzahlen kontinuierlich steigen. In diesem Projekt wird das bestehende Backend durch eine moderne Microservice-Landschaft ersetzt, in der einzelne Fachlichkeiten, etwa das Tarifmanagement oder die Vertragsverwaltung, herausgelöst sind. Dank Domain Driven Design erhalten wir eine zukunftssichere Plattform, die gemäß der unterschiedlichen Fachlichkeiten modularisiert ist. So können neue Feature zielsicher in dem betroffenen Microservice umgesetzt werden. Die neuen User Interfaces werden gemäß einem entworfenen UX-Konzept entwickelt und verbessern dadurch die User Experience deutlich.
Die Microservice-Architektur reduziert die Komplexität erheblich, da bei Anpassungen oder Erweiterungen nur der betroffene Service angefasst werden muss. Diese Komplexitäts-Reduktion ist umso wichtiger, als das Backend Daten unterschiedlichster externer Systeme erhält, z.B. Daten der Ladestationen, Bankdaten der Kunden und Abrechnungsdaten. Diese Daten müssen vom Backend in Echtzeit verarbeitet und an die angekoppelten Systeme weitergegeben werden, z.B. an den internen Support oder externe Systeme. Durch das iterative Vorgehen, einzelne Services nacheinander herauszulösen, sind wir in der Lage, die Services früh live zu nehmen und erhalten somit schnell Feedback. Das reduziert das Risiko und hält uns handlungsfähig. Außerdem können wir die Erkenntnisse zu Architektur-Entscheidungen auf künftige Services übertragen.