Camunda
Zalando ist Europas größte Online-Plattform für Mode. Das umfangreiche Angebot für Damen, Herren und Kinder sowie Accessoires und Sportartikel reicht von weltweit bekannten Marken über lokale und Fast-Fashion Brands bis hin zu selbst designten Private Labels – insgesamt arbeitet Zalando mit über 1.500 Markenherstellern zusammen. Das Berliner Unternehmen wurde 2008 von Robert Gentz und David Schneider gegründet und beliefert mittlerweile insgesamt 15 europäische Märkte.
Seit 2014 setzt Zalando Camunda zur Abwicklung von Kundenbestellungen ein. Das beinhaltet das Erstellen von Accounting-Daten, Prüfen von Coupons, Kommunikation mit Payment-Dienstleistern, Reservierung von Artikeln in den Logistikzentren, Versenden von Bestellbestätigungen, Fraud Check und Kommunikation mit dem ERP-System.
Das folgende Interview führten wir mit André Hartmann und Jörn Horstmann. Beide sind Java Entwickler bei Zalando SE.
»Die Verarbeitung erhaltener Bestellungen bei Zalando erfolgt im sogenannten „TakeOrder-Prozess“. Dieser Geschäftsprozess enthält sowohl Business-Logik, als auch zahlreiche Service-Integrationen, wie z.B. den Coupon-Service, den Stock-Service, den Payment-Service, den Partner-Service und eine Integration mit dem Logistik-System sowie SAP.
Die Logik dieses Prozesses ist außerordentlich komplex und deckt viele Spezialfälle ab, die beispielsweise vom Aufenthaltsort des Kunden, der Zahlweise oder der Versandadresse abhängen.
In der Ausgangssituation wurde der Prozess durch ein selbstentwickeltes „Prozessframework“ automatisiert, das jedoch nicht optimal gestaltet und für die Produktmanager nur schwer verständlich war. Die Dokumentation des Prozesses und der tatsächliche Code liefen immer wieder auseinander, und die Prozesslogik war auf mehrere Systeme verteilt.
In der Folge war es nahezu unmöglich, die tatsächliche Arbeitsweise dieses für Zalando strategisch wichtigen Kernprozesses nachzuvollziehen.«
»Es wurden verschiedene BPM-Produkte evaluiert. Die finale Entscheidung für Camunda war durch folgende Aspekte motiviert:
»Auf fachlicher Seite musste zunächst der historisch gewachsene Prozess komplett verstanden und in BPMN abgebildet werden. Auf dieser Grundlage konnten Testszenarien für alle Geschäftsfälle mit Cucumber, und Integrationstests für den End-to-end-Prozess entwickelt werden.
Zur erfolgreichen Abwicklung der Bestellungen von mehr als 16 Millionen aktiven Kunden war die Skalierbarkeit und Performance erfolgsentscheidend. Beispielsweise musste eine synchrone Verarbeitung in weniger als 300 ms erfolgen. Zudem musste eine hochverfügbare Laufzeitumgebung mit Frontend Nodes für Load Balancing und Backend Nodes zur Ausführung der Jobs aufgesetzt werden.
Aufgrund der Datenmenge werden die Bestelldaten auf acht strukturgleiche Datenbanken verteilt, wobei der Schlüssel zum Auffinden der Daten die E-Mail des Kunden ist. Zur Umsetzung dieser Sharding-Strategie wurde eine Camunda Process Engine pro Shard eingerichtet.«
»Dank der Einführung von Camunda entspricht der fachlich dokumentierte Prozess nun zu 100 % der technischen Realität. Viele Fragen zum Prozess können durch einen kurzen Blick auf das BPMN-Diagramm sofort beantwortet werden. Dies ist eine wichtige Grundlage für die kontinuierliche Verbesserung des Prozesses und somit auch das weitere Wachstum von Zalando.
Sämtliche Bestellungen durchlaufen synchron den Prozess als Teil des Shop-Checkouts, wobei der nächste Schritt die Migration der nachfolgenden, asynchronen Prozesse ist.«
Camunda © 2024