SlideShare una empresa de Scribd logo
1 de 16
Descargar para leer sin conexión
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

Más contenido relacionado

La actualidad más candente

Manage services presentation
Manage services presentationManage services presentation
Manage services presentation
Len Moncrieffe
 
It Service Management Implementation Overview
It Service Management Implementation OverviewIt Service Management Implementation Overview
It Service Management Implementation Overview
Alan McSweeney
 

La actualidad más candente (20)

BPMN Introduction
BPMN IntroductionBPMN Introduction
BPMN Introduction
 
Datadog: From a single product to a growing platform by Alexis Lê-Quôc, CTO
Datadog: From a single product to a growing platform by Alexis Lê-Quôc, CTODatadog: From a single product to a growing platform by Alexis Lê-Quôc, CTO
Datadog: From a single product to a growing platform by Alexis Lê-Quôc, CTO
 
Application Monitoring using Datadog
Application Monitoring using DatadogApplication Monitoring using Datadog
Application Monitoring using Datadog
 
Road Map - ITIL Implemetation
Road Map - ITIL ImplemetationRoad Map - ITIL Implemetation
Road Map - ITIL Implemetation
 
Data Warehouse or Data Lake, Which Do I Choose?
Data Warehouse or Data Lake, Which Do I Choose?Data Warehouse or Data Lake, Which Do I Choose?
Data Warehouse or Data Lake, Which Do I Choose?
 
UiPath - IT Automation.pdf
UiPath - IT Automation.pdfUiPath - IT Automation.pdf
UiPath - IT Automation.pdf
 
DAT305_Amazon ElastiCache Deep Dive
DAT305_Amazon ElastiCache Deep DiveDAT305_Amazon ElastiCache Deep Dive
DAT305_Amazon ElastiCache Deep Dive
 
Data Virtualization: An Introduction
Data Virtualization: An IntroductionData Virtualization: An Introduction
Data Virtualization: An Introduction
 
Rise of the Data Cloud
Rise of the Data CloudRise of the Data Cloud
Rise of the Data Cloud
 
System Integration PowerPoint Presentation Slides
System Integration PowerPoint Presentation Slides System Integration PowerPoint Presentation Slides
System Integration PowerPoint Presentation Slides
 
ITIL v3 Foundation Overview
ITIL v3 Foundation OverviewITIL v3 Foundation Overview
ITIL v3 Foundation Overview
 
Iasa UK Archimate Overview
Iasa UK Archimate OverviewIasa UK Archimate Overview
Iasa UK Archimate Overview
 
Delta Lake with Azure Databricks
Delta Lake with Azure DatabricksDelta Lake with Azure Databricks
Delta Lake with Azure Databricks
 
Data warehouse proposal
Data warehouse proposalData warehouse proposal
Data warehouse proposal
 
ArchiMate® 3.0 - Trick or Treat?
ArchiMate® 3.0 - Trick or Treat?ArchiMate® 3.0 - Trick or Treat?
ArchiMate® 3.0 - Trick or Treat?
 
Connecting Salesforce CRM to OpenText Exstream
Connecting Salesforce CRM to OpenText ExstreamConnecting Salesforce CRM to OpenText Exstream
Connecting Salesforce CRM to OpenText Exstream
 
Manage services presentation
Manage services presentationManage services presentation
Manage services presentation
 
It Service Management Implementation Overview
It Service Management Implementation OverviewIt Service Management Implementation Overview
It Service Management Implementation Overview
 
Orchestrator - Practical Approach to host UiPath Orchestrator
Orchestrator - Practical Approach to host UiPath OrchestratorOrchestrator - Practical Approach to host UiPath Orchestrator
Orchestrator - Practical Approach to host UiPath Orchestrator
 
Data Governance Trends and Best Practices To Implement Today
Data Governance Trends and Best Practices To Implement TodayData Governance Trends and Best Practices To Implement Today
Data Governance Trends and Best Practices To Implement Today
 

Similar a 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
 
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
 
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
WSO2
 
Cpp In Soa
Cpp In SoaCpp In Soa
Cpp In Soa
WSO2
 
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
WSO2
 
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 a 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
 
Sapbasic
SapbasicSapbasic
Sapbasic
 
Sap overview posted by Parikshit Sanghavi
Sap overview posted by Parikshit SanghaviSap overview posted by Parikshit Sanghavi
Sap overview posted by Parikshit Sanghavi
 
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
 

Más de 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
 

Más de 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
 

Último

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Último (20)

Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 

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