2. 15 countries
3 fulfillment centers
16+ million active customers
2.2+ billion € revenue 2014
135+ million visits per month
9,000+ employees
ONE of EUROPE’S LARGEST ONLINE FASHION RETAILERS
Visit us: tech.zalando.com
3.
4. Two Years Ago:
● Homegrown process framework
● Defined in XML
● Supported only minimal flow control
● Lots of special cases hidden in the code
● Asynchronous processing in batches
5. Sales Order Process (Synchronous)
● Begins after customer clicks “Buy Now”
● ~25 service tasks / ~30 gateways
○ Calculating accounting data for the ERP system
○ Validating coupons
○ Communicating with payment providers
○ Reserving stock
6. Sales Order Process (Async Part)
● Ongoing migration project
● ~10 service tasks / ~15 gateways
○ Sending confirmation mails
○ Fraud checks
○ Communicating with ERP system
8. Sharded Database
● Process engine data next to order data
● Allows joins between processes and orders
● Very useful during migration
○ Skip legacy process if there is an active process in
at least version x.y
10. Separating WebService and Job Nodes
● Jobs do not influence synchronous process
● Can tune connection pools differently
● Leads to OptimisticLockingExceptions
○ Still works fine under load
○ Several improvements in 7.2 and 7.3
11. Deployment
● Rolling deployment of nodes
● Updated process model in DB while nodes
still run old code
● Code has to specify exact version to run
● Feature now included in release 7.3
12. Custom History Backend
● Not logging activity history to DB
● Improved performance due to fewer inserts
● Integrated into business event monitoring