SlideShare a Scribd company logo
Order Processing at Scale
Camunda Community Day 2015
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
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
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
Sales Order Process (Async Part)
● Ongoing migration project
● ~10 service tasks / ~15 gateways
○ Sending confirmation mails
○ Fraud checks
○ Communicating with ERP system
Sharded Database
Distributing order and customer data across
multiple Postgres databases
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
Architecture
DB1
Shop
WS1 WS2 ... WSN
DB2 ... DBN
Job1 Job2 ... JobN
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
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
Custom History Backend
● Not logging activity history to DB
● Improved performance due to fewer inserts
● Integrated into business event monitoring
Incident Management
$ ./cockpit-client.py
usage: cockpit-client.py [-h] (-s SHARD | -a)
[-e {live,integration,release-staging}]
[-u [USERNAME]] [-p [PASSWORD]]
[-i PROCESS_INSTANCE_ID] [-m MESSAGE]
[--from-timestamp FROM_TIMESTAMP]
[--to-timestamp TO_TIMESTAMP]
(-c | -C | -r | -l)
[-v]
$ ./cockpit-client.py -e live -a -m "could not send mail" -r
resolved incident for process instance 3d8121e1-4d7b-45df-8213-ad6e22484ee6
Implementation - Shard Aware
context().setup(order);
...
public class ShardAwareProcessEngine extends DelegatingProcessEngine {
private Map<String, ProcessEngine> processEngines;
@Override
protected ProcessEngine getProcessEngine() {
final Order order = context().getOrder();
return processEngines.get(order.getShardId());
}
}
Implementation - Custom Scopes
@Component
@FlowScoped
public class SendOrderConfirmationMail implements JavaDelegate
@Autowired
private Order currentOrder;
@Autowired
private MailService mailService;
@Override
public void execute(final DelegateExecution execution) { }
}
● Tech Blog: tech.zalando.com
● GitHub: github.com/zalando
● Twitter: @ZalandoTech
● Instagram: zalandotech
CHECK US OUT!
Jobs: http://tech.zalando.com/jobs

More Related Content

What's hot

Chapter 7 Use Case Model
Chapter 7 Use Case ModelChapter 7 Use Case Model
Chapter 7 Use Case Model
Mae Abigail Banquil
 
Activity diagram-UML diagram
Activity diagram-UML diagramActivity diagram-UML diagram
Activity diagram-UML diagram
Ramakant Soni
 
Kick Off Meeting Project D365 FO & CRM Cloud Version
Kick Off Meeting Project D365 FO & CRM Cloud VersionKick Off Meeting Project D365 FO & CRM Cloud Version
Kick Off Meeting Project D365 FO & CRM Cloud Version
Miftahul Huda
 
Mirth Connect as Interface Engine Case Study v2
Mirth Connect as Interface Engine Case Study v2Mirth Connect as Interface Engine Case Study v2
Mirth Connect as Interface Engine Case Study v2Christopher Klaus
 
Activity Diagram
Activity DiagramActivity Diagram
Activity Diagram
Ashesh R
 
CMMi & IT Governance
CMMi & IT GovernanceCMMi & IT Governance
CMMi & IT Governance
Raveesh Goswami
 
BPMN Introduction and BPD in Visio
BPMN Introduction and BPD in VisioBPMN Introduction and BPD in Visio
BPMN Introduction and BPD in Visio
vpmouttou
 
Maximizing SAP ABAP Performance
Maximizing SAP ABAP PerformanceMaximizing SAP ABAP Performance
Maximizing SAP ABAP Performance
PeterHBrown
 
What is BPM?
What is BPM?What is BPM?
What is BPM?
Atle Skjekkeland
 
How to Send IDOC to SAP using MuleSoft
How to Send IDOC to SAP using MuleSoftHow to Send IDOC to SAP using MuleSoft
How to Send IDOC to SAP using MuleSoft
Arul ChristhuRaj Alphonse
 
ITSM (IT Service Management) & ITIL V3 Foundation
ITSM (IT Service Management) & ITIL V3 FoundationITSM (IT Service Management) & ITIL V3 Foundation
ITSM (IT Service Management) & ITIL V3 Foundation
PrudentialSolutions
 
Lean and Agile SAP
Lean and Agile SAPLean and Agile SAP
Lean and Agile SAP
Jason Fair
 
Microservice architecture design principles
Microservice architecture design principlesMicroservice architecture design principles
Microservice architecture design principles
Sanjoy Kumar Roy
 
Unis software
Unis softwareUnis software
Unis software
Ammar Sohail
 
Building Service Oriented Architecture based applications
Building Service Oriented Architecture based applicationsBuilding Service Oriented Architecture based applications
Building Service Oriented Architecture based applications
Ramco Institute of Technology, Rajapalayam, Tamilnadu, India
 
Big Data visualization with Apache Spark and Zeppelin
Big Data visualization with Apache Spark and ZeppelinBig Data visualization with Apache Spark and Zeppelin
Big Data visualization with Apache Spark and Zeppelin
prajods
 
The Power of Process: How Samsung Implemented ITIL
The Power of Process: How Samsung Implemented ITILThe Power of Process: How Samsung Implemented ITIL
The Power of Process: How Samsung Implemented ITIL
Atlassian
 
SAP Integration with MuleSoft | MuleSoft Mysore Meetup #14
SAP Integration with MuleSoft | MuleSoft Mysore Meetup #14 SAP Integration with MuleSoft | MuleSoft Mysore Meetup #14
SAP Integration with MuleSoft | MuleSoft Mysore Meetup #14
MysoreMuleSoftMeetup
 
Mulesoft ppt
Mulesoft pptMulesoft ppt
Mulesoft ppt
Achyuta Lakshmi
 
Tips on how to build Camunda Run for production
Tips on how to build Camunda Run for productionTips on how to build Camunda Run for production
Tips on how to build Camunda Run for production
camunda services GmbH
 

What's hot (20)

Chapter 7 Use Case Model
Chapter 7 Use Case ModelChapter 7 Use Case Model
Chapter 7 Use Case Model
 
Activity diagram-UML diagram
Activity diagram-UML diagramActivity diagram-UML diagram
Activity diagram-UML diagram
 
Kick Off Meeting Project D365 FO & CRM Cloud Version
Kick Off Meeting Project D365 FO & CRM Cloud VersionKick Off Meeting Project D365 FO & CRM Cloud Version
Kick Off Meeting Project D365 FO & CRM Cloud Version
 
Mirth Connect as Interface Engine Case Study v2
Mirth Connect as Interface Engine Case Study v2Mirth Connect as Interface Engine Case Study v2
Mirth Connect as Interface Engine Case Study v2
 
Activity Diagram
Activity DiagramActivity Diagram
Activity Diagram
 
CMMi & IT Governance
CMMi & IT GovernanceCMMi & IT Governance
CMMi & IT Governance
 
BPMN Introduction and BPD in Visio
BPMN Introduction and BPD in VisioBPMN Introduction and BPD in Visio
BPMN Introduction and BPD in Visio
 
Maximizing SAP ABAP Performance
Maximizing SAP ABAP PerformanceMaximizing SAP ABAP Performance
Maximizing SAP ABAP Performance
 
What is BPM?
What is BPM?What is BPM?
What is BPM?
 
How to Send IDOC to SAP using MuleSoft
How to Send IDOC to SAP using MuleSoftHow to Send IDOC to SAP using MuleSoft
How to Send IDOC to SAP using MuleSoft
 
ITSM (IT Service Management) & ITIL V3 Foundation
ITSM (IT Service Management) & ITIL V3 FoundationITSM (IT Service Management) & ITIL V3 Foundation
ITSM (IT Service Management) & ITIL V3 Foundation
 
Lean and Agile SAP
Lean and Agile SAPLean and Agile SAP
Lean and Agile SAP
 
Microservice architecture design principles
Microservice architecture design principlesMicroservice architecture design principles
Microservice architecture design principles
 
Unis software
Unis softwareUnis software
Unis software
 
Building Service Oriented Architecture based applications
Building Service Oriented Architecture based applicationsBuilding Service Oriented Architecture based applications
Building Service Oriented Architecture based applications
 
Big Data visualization with Apache Spark and Zeppelin
Big Data visualization with Apache Spark and ZeppelinBig Data visualization with Apache Spark and Zeppelin
Big Data visualization with Apache Spark and Zeppelin
 
The Power of Process: How Samsung Implemented ITIL
The Power of Process: How Samsung Implemented ITILThe Power of Process: How Samsung Implemented ITIL
The Power of Process: How Samsung Implemented ITIL
 
SAP Integration with MuleSoft | MuleSoft Mysore Meetup #14
SAP Integration with MuleSoft | MuleSoft Mysore Meetup #14 SAP Integration with MuleSoft | MuleSoft Mysore Meetup #14
SAP Integration with MuleSoft | MuleSoft Mysore Meetup #14
 
Mulesoft ppt
Mulesoft pptMulesoft ppt
Mulesoft ppt
 
Tips on how to build Camunda Run for production
Tips on how to build Camunda Run for productionTips on how to build Camunda Run for production
Tips on how to build Camunda Run for production
 

Similar to Order Processing at Scale: Zalando at Camunda Community Day

Javier Lopez_Mihail Vieru - Flink in Zalando's World of Microservices - Flink...
Javier Lopez_Mihail Vieru - Flink in Zalando's World of Microservices - Flink...Javier Lopez_Mihail Vieru - Flink in Zalando's World of Microservices - Flink...
Javier Lopez_Mihail Vieru - Flink in Zalando's World of Microservices - Flink...
Flink Forward
 
Migration of a high-traffic E-commerce website from Legacy Monolith to Micros...
Migration of a high-traffic E-commerce website from Legacy Monolith to Micros...Migration of a high-traffic E-commerce website from Legacy Monolith to Micros...
Migration of a high-traffic E-commerce website from Legacy Monolith to Micros...
Pavel Pratyush
 
Digitalizing enterprise finance processes with Low Code – The success story o...
Digitalizing enterprise finance processes with Low Code – The success story o...Digitalizing enterprise finance processes with Low Code – The success story o...
Digitalizing enterprise finance processes with Low Code – The success story o...
dox42
 
Scalability truths and serverless architectures
Scalability truths and serverless architecturesScalability truths and serverless architectures
Scalability truths and serverless architectures
Regunath B
 
Scaling up uber's real time data analytics
Scaling up uber's real time data analyticsScaling up uber's real time data analytics
Scaling up uber's real time data analytics
Xiang Fu
 
"Payment System: Survival Guide", Oleksandr Tarasenko
"Payment System: Survival Guide",  Oleksandr Tarasenko"Payment System: Survival Guide",  Oleksandr Tarasenko
"Payment System: Survival Guide", Oleksandr Tarasenko
Fwdays
 
Sap overview posted by Parikshit Sanghavi
Sap overview posted by Parikshit SanghaviSap overview posted by Parikshit Sanghavi
Sap overview posted by Parikshit Sanghavi
Parikshit Sanghavi
 
Sapbasic
SapbasicSapbasic
Sapbasic
Mandeep SINGH
 
WSO2 Business Activity Monitor (BAM) 2.0 - a new beginning
WSO2 Business Activity Monitor (BAM) 2.0 - a new beginningWSO2 Business Activity Monitor (BAM) 2.0 - a new beginning
WSO2 Business Activity Monitor (BAM) 2.0 - a new beginningWSO2
 
Salient features in rel 12.2.x
Salient features in rel 12.2.xSalient features in rel 12.2.x
Salient features in rel 12.2.x
Ramanujam Vangipuram
 
Gcp dataflow
Gcp dataflowGcp dataflow
Gcp dataflow
Igor Roiter
 
Storing State Forever: Why It Can Be Good For Your Analytics
Storing State Forever: Why It Can Be Good For Your AnalyticsStoring State Forever: Why It Can Be Good For Your Analytics
Storing State Forever: Why It Can Be Good For Your Analytics
Yaroslav Tkachenko
 
Let's get to know the Data Streaming
Let's get to know the Data StreamingLet's get to know the Data Streaming
Let's get to know the Data Streaming
Knoldus Inc.
 
Cpp In Soa
Cpp In SoaCpp In Soa
Cpp In SoaWSO2
 
FreeFlow Process Manager
FreeFlow Process ManagerFreeFlow Process Manager
FreeFlow Process Manager
Fuji Xerox Singapore
 
COM+ & MSMQ
COM+ & MSMQCOM+ & MSMQ
COM+ & MSMQ
G Srinivasan
 
WSO2 Advantage Webinar WSO2 BAM2 Integration with mule esb
WSO2 Advantage Webinar  WSO2 BAM2 Integration with mule esbWSO2 Advantage Webinar  WSO2 BAM2 Integration with mule esb
WSO2 Advantage Webinar WSO2 BAM2 Integration with mule esbWSO2
 
Handling eventual consistency in a transactional world with Matteo Cimini and...
Handling eventual consistency in a transactional world with Matteo Cimini and...Handling eventual consistency in a transactional world with Matteo Cimini and...
Handling eventual consistency in a transactional world with Matteo Cimini and...
HostedbyConfluent
 
Kafka Summit 2022: Handling Eventual Consistency in a Transactional World.pdf
Kafka Summit 2022: Handling Eventual Consistency in a Transactional World.pdfKafka Summit 2022: Handling Eventual Consistency in a Transactional World.pdf
Kafka Summit 2022: Handling Eventual Consistency in a Transactional World.pdf
Andrea Gioia
 

Similar to Order Processing at Scale: Zalando at Camunda Community Day (20)

Javier Lopez_Mihail Vieru - Flink in Zalando's World of Microservices - Flink...
Javier Lopez_Mihail Vieru - Flink in Zalando's World of Microservices - Flink...Javier Lopez_Mihail Vieru - Flink in Zalando's World of Microservices - Flink...
Javier Lopez_Mihail Vieru - Flink in Zalando's World of Microservices - Flink...
 
Migration of a high-traffic E-commerce website from Legacy Monolith to Micros...
Migration of a high-traffic E-commerce website from Legacy Monolith to Micros...Migration of a high-traffic E-commerce website from Legacy Monolith to Micros...
Migration of a high-traffic E-commerce website from Legacy Monolith to Micros...
 
Digitalizing enterprise finance processes with Low Code – The success story o...
Digitalizing enterprise finance processes with Low Code – The success story o...Digitalizing enterprise finance processes with Low Code – The success story o...
Digitalizing enterprise finance processes with Low Code – The success story o...
 
Scalability truths and serverless architectures
Scalability truths and serverless architecturesScalability truths and serverless architectures
Scalability truths and serverless architectures
 
Scaling up uber's real time data analytics
Scaling up uber's real time data analyticsScaling up uber's real time data analytics
Scaling up uber's real time data analytics
 
"Payment System: Survival Guide", Oleksandr Tarasenko
"Payment System: Survival Guide",  Oleksandr Tarasenko"Payment System: Survival Guide",  Oleksandr Tarasenko
"Payment System: Survival Guide", Oleksandr Tarasenko
 
Sap overview posted by Parikshit Sanghavi
Sap overview posted by Parikshit SanghaviSap overview posted by Parikshit Sanghavi
Sap overview posted by Parikshit Sanghavi
 
Sapbasic
SapbasicSapbasic
Sapbasic
 
VIVAOil2010
VIVAOil2010VIVAOil2010
VIVAOil2010
 
WSO2 Business Activity Monitor (BAM) 2.0 - a new beginning
WSO2 Business Activity Monitor (BAM) 2.0 - a new beginningWSO2 Business Activity Monitor (BAM) 2.0 - a new beginning
WSO2 Business Activity Monitor (BAM) 2.0 - a new beginning
 
Salient features in rel 12.2.x
Salient features in rel 12.2.xSalient features in rel 12.2.x
Salient features in rel 12.2.x
 
Gcp dataflow
Gcp dataflowGcp dataflow
Gcp dataflow
 
Storing State Forever: Why It Can Be Good For Your Analytics
Storing State Forever: Why It Can Be Good For Your AnalyticsStoring State Forever: Why It Can Be Good For Your Analytics
Storing State Forever: Why It Can Be Good For Your Analytics
 
Let's get to know the Data Streaming
Let's get to know the Data StreamingLet's get to know the Data Streaming
Let's get to know the Data Streaming
 
Cpp In Soa
Cpp In SoaCpp In Soa
Cpp In Soa
 
FreeFlow Process Manager
FreeFlow Process ManagerFreeFlow Process Manager
FreeFlow Process Manager
 
COM+ & MSMQ
COM+ & MSMQCOM+ & MSMQ
COM+ & MSMQ
 
WSO2 Advantage Webinar WSO2 BAM2 Integration with mule esb
WSO2 Advantage Webinar  WSO2 BAM2 Integration with mule esbWSO2 Advantage Webinar  WSO2 BAM2 Integration with mule esb
WSO2 Advantage Webinar WSO2 BAM2 Integration with mule esb
 
Handling eventual consistency in a transactional world with Matteo Cimini and...
Handling eventual consistency in a transactional world with Matteo Cimini and...Handling eventual consistency in a transactional world with Matteo Cimini and...
Handling eventual consistency in a transactional world with Matteo Cimini and...
 
Kafka Summit 2022: Handling Eventual Consistency in a Transactional World.pdf
Kafka Summit 2022: Handling Eventual Consistency in a Transactional World.pdfKafka Summit 2022: Handling Eventual Consistency in a Transactional World.pdf
Kafka Summit 2022: Handling Eventual Consistency in a Transactional World.pdf
 

More from Zalando Technology

Stream Processing using Apache Flink in Zalando's World of Microservices - Re...
Stream Processing using Apache Flink in Zalando's World of Microservices - Re...Stream Processing using Apache Flink in Zalando's World of Microservices - Re...
Stream Processing using Apache Flink in Zalando's World of Microservices - Re...
Zalando Technology
 
How We Made our Tech Organization and Architecture Converge Towards Scalability
How We Made our Tech Organization and Architecture Converge Towards ScalabilityHow We Made our Tech Organization and Architecture Converge Towards Scalability
How We Made our Tech Organization and Architecture Converge Towards Scalability
Zalando Technology
 
Powering Radical Agility with Docker
Powering Radical Agility with Docker Powering Radical Agility with Docker
Powering Radical Agility with Docker
Zalando Technology
 
Flink in Zalando's World of Microservices
Flink in Zalando's World of Microservices  Flink in Zalando's World of Microservices
Flink in Zalando's World of Microservices
Zalando Technology
 
High Availability PostgreSQL with Zalando Patroni
High Availability PostgreSQL with Zalando PatroniHigh Availability PostgreSQL with Zalando Patroni
High Availability PostgreSQL with Zalando Patroni
Zalando Technology
 
Reactive Design Patterns: a talk by Typesafe's Dr. Roland Kuhn
Reactive Design Patterns: a talk by Typesafe's Dr. Roland KuhnReactive Design Patterns: a talk by Typesafe's Dr. Roland Kuhn
Reactive Design Patterns: a talk by Typesafe's Dr. Roland Kuhn
Zalando Technology
 
Zalando Tech: From Java to Scala in Less Than Three Months
Zalando Tech: From Java to Scala in Less Than Three MonthsZalando Tech: From Java to Scala in Less Than Three Months
Zalando Tech: From Java to Scala in Less Than Three Months
Zalando Technology
 
Spark + Clojure for Topic Discovery - Zalando Tech Clojure/Conj Talk
Spark + Clojure for Topic Discovery - Zalando Tech Clojure/Conj TalkSpark + Clojure for Topic Discovery - Zalando Tech Clojure/Conj Talk
Spark + Clojure for Topic Discovery - Zalando Tech Clojure/Conj Talk
Zalando Technology
 
Building a Reactive RESTful API with Akka Http & Slick
Building a Reactive RESTful API with Akka Http & SlickBuilding a Reactive RESTful API with Akka Http & Slick
Building a Reactive RESTful API with Akka Http & Slick
Zalando Technology
 
Radical Agility with Autonomous Teams and Microservices
Radical Agility with Autonomous Teams and MicroservicesRadical Agility with Autonomous Teams and Microservices
Radical Agility with Autonomous Teams and Microservices
Zalando Technology
 
ZMON: Monitoring Zalando's Engineering Platform
ZMON: Monitoring Zalando's Engineering PlatformZMON: Monitoring Zalando's Engineering Platform
ZMON: Monitoring Zalando's Engineering Platform
Zalando Technology
 
Mobile Testing Challenges at Zalando Tech
Mobile Testing Challenges at Zalando TechMobile Testing Challenges at Zalando Tech
Mobile Testing Challenges at Zalando Tech
Zalando Technology
 
Auto-scaling your API: Insights and Tips from the Zalando Team
Auto-scaling your API: Insights and Tips from the Zalando TeamAuto-scaling your API: Insights and Tips from the Zalando Team
Auto-scaling your API: Insights and Tips from the Zalando Team
Zalando Technology
 
Radical Agility with Autonomous Teams and Microservices in the Cloud
Radical Agility with Autonomous Teams and Microservices in the CloudRadical Agility with Autonomous Teams and Microservices in the Cloud
Radical Agility with Autonomous Teams and Microservices in the Cloud
Zalando Technology
 

More from Zalando Technology (14)

Stream Processing using Apache Flink in Zalando's World of Microservices - Re...
Stream Processing using Apache Flink in Zalando's World of Microservices - Re...Stream Processing using Apache Flink in Zalando's World of Microservices - Re...
Stream Processing using Apache Flink in Zalando's World of Microservices - Re...
 
How We Made our Tech Organization and Architecture Converge Towards Scalability
How We Made our Tech Organization and Architecture Converge Towards ScalabilityHow We Made our Tech Organization and Architecture Converge Towards Scalability
How We Made our Tech Organization and Architecture Converge Towards Scalability
 
Powering Radical Agility with Docker
Powering Radical Agility with Docker Powering Radical Agility with Docker
Powering Radical Agility with Docker
 
Flink in Zalando's World of Microservices
Flink in Zalando's World of Microservices  Flink in Zalando's World of Microservices
Flink in Zalando's World of Microservices
 
High Availability PostgreSQL with Zalando Patroni
High Availability PostgreSQL with Zalando PatroniHigh Availability PostgreSQL with Zalando Patroni
High Availability PostgreSQL with Zalando Patroni
 
Reactive Design Patterns: a talk by Typesafe's Dr. Roland Kuhn
Reactive Design Patterns: a talk by Typesafe's Dr. Roland KuhnReactive Design Patterns: a talk by Typesafe's Dr. Roland Kuhn
Reactive Design Patterns: a talk by Typesafe's Dr. Roland Kuhn
 
Zalando Tech: From Java to Scala in Less Than Three Months
Zalando Tech: From Java to Scala in Less Than Three MonthsZalando Tech: From Java to Scala in Less Than Three Months
Zalando Tech: From Java to Scala in Less Than Three Months
 
Spark + Clojure for Topic Discovery - Zalando Tech Clojure/Conj Talk
Spark + Clojure for Topic Discovery - Zalando Tech Clojure/Conj TalkSpark + Clojure for Topic Discovery - Zalando Tech Clojure/Conj Talk
Spark + Clojure for Topic Discovery - Zalando Tech Clojure/Conj Talk
 
Building a Reactive RESTful API with Akka Http & Slick
Building a Reactive RESTful API with Akka Http & SlickBuilding a Reactive RESTful API with Akka Http & Slick
Building a Reactive RESTful API with Akka Http & Slick
 
Radical Agility with Autonomous Teams and Microservices
Radical Agility with Autonomous Teams and MicroservicesRadical Agility with Autonomous Teams and Microservices
Radical Agility with Autonomous Teams and Microservices
 
ZMON: Monitoring Zalando's Engineering Platform
ZMON: Monitoring Zalando's Engineering PlatformZMON: Monitoring Zalando's Engineering Platform
ZMON: Monitoring Zalando's Engineering Platform
 
Mobile Testing Challenges at Zalando Tech
Mobile Testing Challenges at Zalando TechMobile Testing Challenges at Zalando Tech
Mobile Testing Challenges at Zalando Tech
 
Auto-scaling your API: Insights and Tips from the Zalando Team
Auto-scaling your API: Insights and Tips from the Zalando TeamAuto-scaling your API: Insights and Tips from the Zalando Team
Auto-scaling your API: Insights and Tips from the Zalando Team
 
Radical Agility with Autonomous Teams and Microservices in the Cloud
Radical Agility with Autonomous Teams and Microservices in the CloudRadical Agility with Autonomous Teams and Microservices in the Cloud
Radical Agility with Autonomous Teams and Microservices in the Cloud
 

Recently uploaded

FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Product School
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Product School
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 

Recently uploaded (20)

FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 

Order Processing at Scale: Zalando at Camunda Community Day

  • 1. Order Processing at Scale Camunda Community Day 2015
  • 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
  • 7. Sharded Database Distributing order and customer data across multiple Postgres databases
  • 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
  • 9. Architecture DB1 Shop WS1 WS2 ... WSN DB2 ... DBN Job1 Job2 ... JobN
  • 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
  • 13. Incident Management $ ./cockpit-client.py usage: cockpit-client.py [-h] (-s SHARD | -a) [-e {live,integration,release-staging}] [-u [USERNAME]] [-p [PASSWORD]] [-i PROCESS_INSTANCE_ID] [-m MESSAGE] [--from-timestamp FROM_TIMESTAMP] [--to-timestamp TO_TIMESTAMP] (-c | -C | -r | -l) [-v] $ ./cockpit-client.py -e live -a -m "could not send mail" -r resolved incident for process instance 3d8121e1-4d7b-45df-8213-ad6e22484ee6
  • 14. Implementation - Shard Aware context().setup(order); ... public class ShardAwareProcessEngine extends DelegatingProcessEngine { private Map<String, ProcessEngine> processEngines; @Override protected ProcessEngine getProcessEngine() { final Order order = context().getOrder(); return processEngines.get(order.getShardId()); } }
  • 15. Implementation - Custom Scopes @Component @FlowScoped public class SendOrderConfirmationMail implements JavaDelegate @Autowired private Order currentOrder; @Autowired private MailService mailService; @Override public void execute(final DelegateExecution execution) { } }
  • 16. ● Tech Blog: tech.zalando.com ● GitHub: github.com/zalando ● Twitter: @ZalandoTech ● Instagram: zalandotech CHECK US OUT! Jobs: http://tech.zalando.com/jobs