SlideShare una empresa de Scribd logo
1 de 24
Orchestration VS Choreography
Documentation
Observability
Consistency
Resilience
• Plan for Failure
• Complex Communication
• Managing Asynchronous Behavior
• Distributed Transactions
Anti-Patterns
Breaking Rules
Microservices Principles & Pitfalls
About Me
2
3
Distributed Systems with Camunda
5
Resilience
6
Accept Failure
Failure will happen.
Accept it!
But keep it local!
Be resilient.
Service
F
Service
D
Service
C
Service
B
Service
A
Service
E
It is impossible to
differentiate certain
failure scenarios.
This is also true for
synchronous HTTP!
Service
Provider
Client
10
Check-in
Barcode
Generator
Web-UI
Me
Output
Mgmt
Workflows live within
service boundaries
11
generateBoardingPass
200 200 OK
H202
ACCEP
TED
Check-in
A synchronous response is possible in
the happy case, otherwise it is switched
to asynchronous processing.
13
Circuit Breaker Pattern
Check-in
Barcode
Generator
Web-UI
Me
Output
Mgmt
Circuit
breaker
15
Avoid the Bad Experience
Check-in
Barcode
Generator
Web-UI
Me
Output
Mgmt
Stateful
Retry
16
Create Much Better Experience
Check-in
Barcode
Generator
Web-UI
Me
Output
Mgmt
Stateful
Retry
17
LIVE DEMO
Say “Hello” to Raff
TXT: (720) 605 – 6849
20
Remember
Check-in
Barcode
Generator
Web-UI
Me
Output
Mgmt
The failure never
leaves this scope!
21
Workflow…
24
Use Saga Instead of 2-Phase-Commit!
Personal
Identification
Check In
Barcode
Generation
Check-In
Local
Transaction
Barcode
Local
Transaction
Verification
Local
Transaction
Transaction Manager
Distributed
25
Saga Pattern using BPMN aka Compensation
Choreography
28
Architecture Options
29
Architecture Options
30
How-To
31
High Level
32
Push vs Pull
Push Pull
Orchestration
34
Add Live Demo Rocket Kid

Más contenido relacionado

La actualidad más candente

The Why and How of Continuous Delivery
The Why and How of Continuous DeliveryThe Why and How of Continuous Delivery
The Why and How of Continuous Delivery
Nigel McNie
 
The Agile Process - Taming Your Process To Work For You
The Agile Process - Taming Your Process To Work For YouThe Agile Process - Taming Your Process To Work For You
The Agile Process - Taming Your Process To Work For You
Nowell Strite
 
Asap+methodology modified
Asap+methodology modifiedAsap+methodology modified
Asap+methodology modified
SURESH-B
 

La actualidad más candente (20)

CamundaCon 2018: Workflow Automation at Scale (24 Hour Fitness)
CamundaCon 2018: Workflow Automation at Scale (24 Hour Fitness)CamundaCon 2018: Workflow Automation at Scale (24 Hour Fitness)
CamundaCon 2018: Workflow Automation at Scale (24 Hour Fitness)
 
CamundaCon 2018: Big Workflow in Action: Zeebe Live Hacking (Camunda)
CamundaCon 2018: Big Workflow in Action: Zeebe Live Hacking (Camunda)CamundaCon 2018: Big Workflow in Action: Zeebe Live Hacking (Camunda)
CamundaCon 2018: Big Workflow in Action: Zeebe Live Hacking (Camunda)
 
[Webinar] Announcing the Camunda Cloud Public Beta - February 2020
[Webinar] Announcing the Camunda Cloud Public Beta - February 2020[Webinar] Announcing the Camunda Cloud Public Beta - February 2020
[Webinar] Announcing the Camunda Cloud Public Beta - February 2020
 
DMN "on Steroids" bei Kühne + Nagel, Torben Rasche & Stefan Becke
DMN "on Steroids" bei Kühne + Nagel, Torben Rasche & Stefan BeckeDMN "on Steroids" bei Kühne + Nagel, Torben Rasche & Stefan Becke
DMN "on Steroids" bei Kühne + Nagel, Torben Rasche & Stefan Becke
 
Roadshow 2018 - Microservices mit Camunda
Roadshow 2018 - Microservices mit CamundaRoadshow 2018 - Microservices mit Camunda
Roadshow 2018 - Microservices mit Camunda
 
Optimize 2.7 Release Webinar
Optimize 2.7 Release WebinarOptimize 2.7 Release Webinar
Optimize 2.7 Release Webinar
 
Camunda BPM at bpmNEXT 2016
Camunda BPM at bpmNEXT 2016Camunda BPM at bpmNEXT 2016
Camunda BPM at bpmNEXT 2016
 
Inetgration patterns for camunda
Inetgration patterns for camundaInetgration patterns for camunda
Inetgration patterns for camunda
 
Reactive Web Best Practices
Reactive Web Best PracticesReactive Web Best Practices
Reactive Web Best Practices
 
SF1 - Apex Development Best Practises
SF1 - Apex Development Best PractisesSF1 - Apex Development Best Practises
SF1 - Apex Development Best Practises
 
The Why and How of Continuous Delivery
The Why and How of Continuous DeliveryThe Why and How of Continuous Delivery
The Why and How of Continuous Delivery
 
5 Secret Weapons Of A Great Salesforce Architect
5 Secret Weapons Of A Great Salesforce Architect5 Secret Weapons Of A Great Salesforce Architect
5 Secret Weapons Of A Great Salesforce Architect
 
Viktor Voitenko "Deploy Practices of JS Application"
Viktor Voitenko "Deploy Practices of JS Application"Viktor Voitenko "Deploy Practices of JS Application"
Viktor Voitenko "Deploy Practices of JS Application"
 
The Agile Process - Taming Your Process To Work For You
The Agile Process - Taming Your Process To Work For YouThe Agile Process - Taming Your Process To Work For You
The Agile Process - Taming Your Process To Work For You
 
Measure Customer Experience of Your OutSystems Web and Mobile Applications
Measure Customer Experience of Your OutSystems Web and Mobile ApplicationsMeasure Customer Experience of Your OutSystems Web and Mobile Applications
Measure Customer Experience of Your OutSystems Web and Mobile Applications
 
Hands-On With Reactive Web Design
Hands-On With Reactive Web DesignHands-On With Reactive Web Design
Hands-On With Reactive Web Design
 
DevOps & BPM: Continuous Integration Power Tools
DevOps & BPM: Continuous Integration Power ToolsDevOps & BPM: Continuous Integration Power Tools
DevOps & BPM: Continuous Integration Power Tools
 
Kafka Summit 2018: Monitoring and Orchestration of Your Microservices Landsca...
Kafka Summit 2018: Monitoring and Orchestration of Your Microservices Landsca...Kafka Summit 2018: Monitoring and Orchestration of Your Microservices Landsca...
Kafka Summit 2018: Monitoring and Orchestration of Your Microservices Landsca...
 
Long running processes in DDD
Long running processes in DDDLong running processes in DDD
Long running processes in DDD
 
Asap+methodology modified
Asap+methodology modifiedAsap+methodology modified
Asap+methodology modified
 

Similar a Paul Lungu: Microservices Integration: Challenges and Solutions - Camunda Day New York City

Practical Thin Server Architecture With Dojo Sapo Codebits 2008
Practical Thin Server Architecture With Dojo Sapo Codebits 2008Practical Thin Server Architecture With Dojo Sapo Codebits 2008
Practical Thin Server Architecture With Dojo Sapo Codebits 2008
codebits
 
Practical Thin Server Architecture With Dojo Peter Svensson
Practical Thin Server Architecture With Dojo Peter SvenssonPractical Thin Server Architecture With Dojo Peter Svensson
Practical Thin Server Architecture With Dojo Peter Svensson
rajivmordani
 

Similar a Paul Lungu: Microservices Integration: Challenges and Solutions - Camunda Day New York City (20)

Service Virtualization - Next Gen Testing Conference Singapore 2013
Service Virtualization - Next Gen Testing Conference Singapore 2013Service Virtualization - Next Gen Testing Conference Singapore 2013
Service Virtualization - Next Gen Testing Conference Singapore 2013
 
Goto meetup Stockholm - Let your microservices flow
Goto meetup Stockholm - Let your microservices flowGoto meetup Stockholm - Let your microservices flow
Goto meetup Stockholm - Let your microservices flow
 
JAX 2017 talk: Orchestration of microservices
JAX 2017 talk: Orchestration of microservicesJAX 2017 talk: Orchestration of microservices
JAX 2017 talk: Orchestration of microservices
 
Vaadin Introduction, 7.3 edition
Vaadin Introduction, 7.3 editionVaadin Introduction, 7.3 edition
Vaadin Introduction, 7.3 edition
 
Jfokus 2018: Lost in transaction - Strategies to deal with (in-)consistency ...
Jfokus 2018: Lost in transaction -  Strategies to deal with (in-)consistency ...Jfokus 2018: Lost in transaction -  Strategies to deal with (in-)consistency ...
Jfokus 2018: Lost in transaction - Strategies to deal with (in-)consistency ...
 
Practical Thin Server Architecture With Dojo Sapo Codebits 2008
Practical Thin Server Architecture With Dojo Sapo Codebits 2008Practical Thin Server Architecture With Dojo Sapo Codebits 2008
Practical Thin Server Architecture With Dojo Sapo Codebits 2008
 
Pets vs. Cattle: The Elastic Cloud Story
Pets vs. Cattle: The Elastic Cloud StoryPets vs. Cattle: The Elastic Cloud Story
Pets vs. Cattle: The Elastic Cloud Story
 
Client-Server-Kommunikation mit dem Command Pattern
Client-Server-Kommunikation mit dem Command PatternClient-Server-Kommunikation mit dem Command Pattern
Client-Server-Kommunikation mit dem Command Pattern
 
3 common pitfalls in microservice integration
3 common pitfalls in microservice integration3 common pitfalls in microservice integration
3 common pitfalls in microservice integration
 
Learnings from the Field. Lessons from Working with Dozens of Small & Large D...
Learnings from the Field. Lessons from Working with Dozens of Small & Large D...Learnings from the Field. Lessons from Working with Dozens of Small & Large D...
Learnings from the Field. Lessons from Working with Dozens of Small & Large D...
 
Orchestration of Microservices - Google dev fest 2017 Berlin
Orchestration of Microservices - Google dev fest 2017 BerlinOrchestration of Microservices - Google dev fest 2017 Berlin
Orchestration of Microservices - Google dev fest 2017 Berlin
 
The Real World - Plugging the Enterprise Into It (nodejs)
The Real World - Plugging  the Enterprise Into It (nodejs)The Real World - Plugging  the Enterprise Into It (nodejs)
The Real World - Plugging the Enterprise Into It (nodejs)
 
Practical Thin Server Architecture With Dojo Peter Svensson
Practical Thin Server Architecture With Dojo Peter SvenssonPractical Thin Server Architecture With Dojo Peter Svensson
Practical Thin Server Architecture With Dojo Peter Svensson
 
The Good, The Bad, and The Avro (Graham Stirling, Saxo Bank and David Navalho...
The Good, The Bad, and The Avro (Graham Stirling, Saxo Bank and David Navalho...The Good, The Bad, and The Avro (Graham Stirling, Saxo Bank and David Navalho...
The Good, The Bad, and The Avro (Graham Stirling, Saxo Bank and David Navalho...
 
12-factor-jruby
12-factor-jruby12-factor-jruby
12-factor-jruby
 
Gomez / Universal Mind Webinar - Are You Ready? A New Approach for Ensuring Y...
Gomez / Universal Mind Webinar - Are You Ready? A New Approach for Ensuring Y...Gomez / Universal Mind Webinar - Are You Ready? A New Approach for Ensuring Y...
Gomez / Universal Mind Webinar - Are You Ready? A New Approach for Ensuring Y...
 
Pipeline conference 2017 - Breaking down your build: architectural patterns f...
Pipeline conference 2017 - Breaking down your build: architectural patterns f...Pipeline conference 2017 - Breaking down your build: architectural patterns f...
Pipeline conference 2017 - Breaking down your build: architectural patterns f...
 
Microservies Vienna - Lost in transactions
Microservies Vienna - Lost in transactionsMicroservies Vienna - Lost in transactions
Microservies Vienna - Lost in transactions
 
Bernd Ruecker - 3 Common Pitfalls in Microservice Integration - Codemotion Be...
Bernd Ruecker - 3 Common Pitfalls in Microservice Integration - Codemotion Be...Bernd Ruecker - 3 Common Pitfalls in Microservice Integration - Codemotion Be...
Bernd Ruecker - 3 Common Pitfalls in Microservice Integration - Codemotion Be...
 
Bernd Ruecker - 3 Common Pitfalls in Microservice Integration - Codemotion Be...
Bernd Ruecker - 3 Common Pitfalls in Microservice Integration - Codemotion Be...Bernd Ruecker - 3 Common Pitfalls in Microservice Integration - Codemotion Be...
Bernd Ruecker - 3 Common Pitfalls in Microservice Integration - Codemotion Be...
 

Más de camunda services GmbH

Camunda BPM 7.13 Webinar
Camunda BPM 7.13 WebinarCamunda BPM 7.13 Webinar
Camunda BPM 7.13 Webinar
camunda services GmbH
 

Más de camunda services GmbH (20)

Using Camunda on Kubernetes through Operators
Using Camunda on Kubernetes through OperatorsUsing Camunda on Kubernetes through Operators
Using Camunda on Kubernetes through Operators
 
Camunda Product Update – The present and the future of Process Automation
Camunda Product Update – The present and the future of Process AutomationCamunda Product Update – The present and the future of Process Automation
Camunda Product Update – The present and the future of Process Automation
 
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
 
Process Driven Customer Interaction
Process Driven Customer InteractionProcess Driven Customer Interaction
Process Driven Customer Interaction
 
Exploring Automation in Government
Exploring Automation in GovernmentExploring Automation in Government
Exploring Automation in Government
 
The Pulse of Process Automation
The Pulse of Process AutomationThe Pulse of Process Automation
The Pulse of Process Automation
 
Blitzumfrage zur aktuellen Nutzung von Prozessautomatisierung in Unternehmen
Blitzumfrage zur aktuellen Nutzung von Prozessautomatisierung in UnternehmenBlitzumfrage zur aktuellen Nutzung von Prozessautomatisierung in Unternehmen
Blitzumfrage zur aktuellen Nutzung von Prozessautomatisierung in Unternehmen
 
Webinar - A Developer's Quick Start Guide to Open Source Process Automation U...
Webinar - A Developer's Quick Start Guide to Open Source Process Automation U...Webinar - A Developer's Quick Start Guide to Open Source Process Automation U...
Webinar - A Developer's Quick Start Guide to Open Source Process Automation U...
 
Extending human workflow preparing people and processes for the digital era w...
Extending human workflow preparing people and processes for the digital era w...Extending human workflow preparing people and processes for the digital era w...
Extending human workflow preparing people and processes for the digital era w...
 
Camunda BPM 7.13 Webinar
Camunda BPM 7.13 WebinarCamunda BPM 7.13 Webinar
Camunda BPM 7.13 Webinar
 
[Webinar] Camunda Optimize Release 3.0
[Webinar] Camunda Optimize Release 3.0[Webinar] Camunda Optimize Release 3.0
[Webinar] Camunda Optimize Release 3.0
 
Webinar: Monitoring & Orchestrating Your Microservices Landscape using Workfl...
Webinar: Monitoring & Orchestrating Your Microservices Landscape using Workfl...Webinar: Monitoring & Orchestrating Your Microservices Landscape using Workfl...
Webinar: Monitoring & Orchestrating Your Microservices Landscape using Workfl...
 
Process Automation Forum, Processautomatisierung neu gedacht für das digitale...
Process Automation Forum, Processautomatisierung neu gedacht für das digitale...Process Automation Forum, Processautomatisierung neu gedacht für das digitale...
Process Automation Forum, Processautomatisierung neu gedacht für das digitale...
 
Process Automation Forum Zurich, finnova AG Bankware
Process Automation Forum Zurich, finnova AG BankwareProcess Automation Forum Zurich, finnova AG Bankware
Process Automation Forum Zurich, finnova AG Bankware
 
Process Automation Forum Munich, Swiss Life
Process Automation Forum Munich, Swiss LifeProcess Automation Forum Munich, Swiss Life
Process Automation Forum Munich, Swiss Life
 
Process Automation Forum Vienna, A1 & J-IT
Process Automation Forum Vienna, A1 & J-ITProcess Automation Forum Vienna, A1 & J-IT
Process Automation Forum Vienna, A1 & J-IT
 
Process Automation Forum Vienna, Raiffeisen
Process Automation Forum Vienna, RaiffeisenProcess Automation Forum Vienna, Raiffeisen
Process Automation Forum Vienna, Raiffeisen
 
Process Automation Forum Düsseldorf, Provinzial Rheinland Versicherung AG
Process Automation Forum Düsseldorf, Provinzial Rheinland Versicherung AGProcess Automation Forum Düsseldorf, Provinzial Rheinland Versicherung AG
Process Automation Forum Düsseldorf, Provinzial Rheinland Versicherung AG
 
[Webinar] BPM Renaissance: 5 Tips to Thrive in a Cloud-Native World
[Webinar] BPM Renaissance: 5 Tips to Thrive in a Cloud-Native World[Webinar] BPM Renaissance: 5 Tips to Thrive in a Cloud-Native World
[Webinar] BPM Renaissance: 5 Tips to Thrive in a Cloud-Native World
 
Zeebe + Operate January 2020 Update
Zeebe + Operate January 2020 UpdateZeebe + Operate January 2020 Update
Zeebe + Operate January 2020 Update
 

Último

Último (20)

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
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
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
 
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...
 
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
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
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
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
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
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
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...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 

Paul Lungu: Microservices Integration: Challenges and Solutions - Camunda Day New York City

Notas del editor

  1. Many organizations have principles or guidlines they adhere to for microservices. While following these principles we want to build resiliant, well documented, understandable, and flexible systems. Sometimes we may need to break the rules but we should do this consiously. Camunda and BPMN is a powerful tool in your tool box and can help you to build these qualitites into your systems.
  2. My name is Paul Lungu I’m a consultant with Camunda NA That’s my daily driver the ridge rider.
  3. Many customer are doing microservices or distributed systems in some form. Weather its’s calling a restful service leveraging request response Or building an event driven systems Camunda is helping solve problems and challenges
  4. There are things we cannot control. What is resilience; Dealing with the things we cannot control. The network is a dark and stormy place We have many challenges to overcome Our goal; Build Resilient Systems
  5. Design for failure Fail Fast Keep failure local Circuit Breaker Pattern - Make sure failure doesn’t take down your system What does this mean in more practical terms Lets talk in a little detail about the challenges
  6. Communication is complex.
  7. In the rough seas it’s difficult to determine certain failure scenarios Request doesn’t get there Service Fails Response doesn’t get back to the client
  8. Workflows can be very small when used for these challenges. We can encapsulate the functionality of the checkin using Camunda and BPMN We can think of the workflow engine living inside this microservice Now we can do things like Retry Fallback when things to workout And much more As a user I would still get a bad experience here if we haven’t considered the behaviour from the user perspective. How would you solve this?
  9. Now with the state and functionality contained within this service. We can consciously make the decision. Because BPMN is natural documentation that provides tranparancy and observability into what’s happening real-time and historically.
  10. Another way we can be resilient Don’t let failure take down the entire system
  11. We want to avoid this bad user experience. Guide the user or service or even better handle the failure ourselves and provide a good response later. This goes with for another service that using our service. Avoid telling our end user; you need to start all over. We have preserved our system so you can do the process all over again. Why did we have to do that? Because we have no way to preserve the state of what you did before the failure.
  12. Save the user some work, then send the boarding pass when it’s ready. It would be much better to contain the error and the state within the checking service. Whenever a service can resolve failures itself, it encapsulates important behavior. Reducing overall complexity in the system. Creating a better experience for the user or client using the service
  13. We have another big challenge.
  14. A powerful pattern that often accompanies async are timers. In this example we send a message to the barcode generator we then wait for a message to come back. Of course we can only wait so long before we need to take other actions.
  15. We want to make sure we keep the failure local and contained. We can accomplish both with BPMN.
  16. It’s easy to handle time and set up communication that is asynchronous. Now we have a stateful service that can handle failure in an asynchronous way.
  17. In distributed systems you cannot count on ACID transactions. Distributed Transactions don’t scale well in distributed systems Difficult to manage failure with two phase commit Don’t use two phase commit with XA transaction manager But we still have the problem Saga pattern - compensation in BPMN Eventual Consistency
  18. Google two phase commit images two get a feeling for complexity. Gross simplification of two phase commit Has problems like it’s hard to debug when things go wrong and they will go wrong.
  19. The engine can stitch together all the these activities and handle failures in the service. It’s eventual consistency but that’s ok in this scenario.
  20. Many other architecture options including J2EE App Servers Web-sphere Web-logic JBoss Were going to focus on the microservice related architectures Spring Boot Wildfly Swarm Each service is living on it’s own. They are autonomous.
  21. Depending on how we design the BPMN we can flip the architecture a bit on it’s head. You can use External Tasks to take advantage. Your system can be a Polyglot of programming language and technologies.
  22. It’s very easy to configure an external task client. But sometimes the easiest things are the hardest to truly understand conceptually
  23. In contrast to calling Java code, where the process engine synchronously invokes Java logic, it is possible to implement a Service Task outside of the process engine’s boundaries in the form of an external task.
  24. In the push scenario we are calling code from our service task. In the pull scenario we are waiting for our code to call us. This decouples our code from the workflow.