In diesem Projekt habe ich als einer von zwei Entwicklern die Kern-Komponente für den Laufzeitrabatt umgesetzt. Der Laufzeitrabatt bietet dem Kunden die Möglichkeit, die Zustellung einer Sendung in zwei anstatt einem Tag zu akzeptieren und im Gegenzug dafür einen Rabatt zu bekommen.
Die Hauptaufgabe der Komponente meines Teams war, dem nächsten System zu melden welche Sendungen die Grundvoraussetzungen für die Rabattierung erfüllt. Dazu musste sichergestellt werden, dass die Sendungsnummern eindeutig, also nicht doppelt, sind und auch das Porto dafür bezahlt ist.
Obwohl dies zunächst trivial klingt, stellte sich die Fachlichkeit, ob eine Sendung als eindeutig bzw. doppelt bewertet wird als unerwartet komplex heraus. Eine weitere wesentliche Herausforderung war, alle Berechnungen performant durchzuführen. Mit mehreren Milliarden Sendungen pro Jahr und mehreren Abgleichen gegen den Großteil des Datenbestands pro Sendung galt es, effiziente Lösungen und Optimierungswege zu finden.
Da dieses Projekt eine Neuentwicklung war, habe ich fast ausschließlich an der eigentlichen Implementierung bzw. der Klärung der dafür notwendigen Fachlichkeit gearbeitet. Des Weiteren war ich verantwortlich für die Code-Qualität.
Verwendete Tools / Technologien: Java 11/17, Spring Stack, Hibernate, Flyway, Microsoft Azure, REST, OpenAPI, Cucumber, JUnit, Mockito, Testcontainers, Git, GitHub, Maven, Docker, Kubernetes, Helm, Terraform, Jira, Confluence, IntelliJ IDEA, Scrum