Slides from my talk "Microservices Architectures" at JAX Mainz on 3rd of May 2022 (https://jax.de/software-architecture/understanding-communication-patterns-in-microservices-architectures/)
Webinar "Communication Between Loosely Coupled Microservices"Bernd Ruecker
Slides from the Camunda webinar "Communication Between Loosely Coupled Microservices" in February 2021. Recording can be found online: https://page.camunda.com/wb-communication-between-microservices
A whirlwind tour of Event Driven Architecture, extensibility, Domain Driven Design, Command and Query Responsibility Segregation (CQRS) and Complex Event Processing
Webinar "Communication Between Loosely Coupled Microservices"Bernd Ruecker
Slides from the Camunda webinar "Communication Between Loosely Coupled Microservices" in February 2021. Recording can be found online: https://page.camunda.com/wb-communication-between-microservices
A whirlwind tour of Event Driven Architecture, extensibility, Domain Driven Design, Command and Query Responsibility Segregation (CQRS) and Complex Event Processing
CraftConf: Surviving the hyperautomation low code bubblBernd Ruecker
Slides from my talk at CraftConf Budapest in May 2023 about how developers can embrace and shape low code applications in their organizations to help the business automate more
How To Run a 5 Whys (With Humans, Not Robots)Dan Milstein
Slides from a talk at the Lean Startup conference (video link below).
Update: I've interleaved slides covering what I actually talked about onstage.
Update Update: video is up at http://www.ustream.tv/recorded/27482093/highlight/310486
In this presentation, I will explain event driven architecture, describe the different types of events, demonstrate how events can be related and orchestrated, and provide a basic understanding of how this method can drive the architecture of enterprise systems. In addition to understanding the concepts of event driven architecture, we will explore a working sample built using an open-source .NET messaging framework called MassTransit.
Event-driven architecture (EDA) is a software architecture pattern promoting the production, detection, consumption of, and reaction to events.
This architectural pattern may be applied by the design and implementation of applications and systems which transmit events among loosely coupled software components and services.
In this session you’ll learn how to create a loosely coupled architecture for your business that has the domain at the core. You’ll learn the basics of EDA, and also learn how we are transforming our architecture at Unibet.com to become event driven, and what benefits it will bring to our business. The session will cover technologies such as JMS, XML, JSON, Google Protocol Buffers, ActiveMQ and Spring.
http://wso2.com/library/webinars/2016/05/building-event-driven-systems/
Enterprises interact and integrate with a multitude of internal and external systems. Specific business requirements require these business level integrations to be implemented in an event driven manner. Additionally, there are instances where event driven integration patterns are used to achieve certain operational goals.
This webinar aims to
Identify common event driven integration patterns
Illustrate how WSO2 middleware can be used to design them
Saga about distributed business transactions in microservices worldMikalai Alimenkou
Most of people nowadays think microservices architecture is a great way to build any system. They visit conference talks, read books and review tutorials, where ‘hello world’ applications are built just in several minutes using microservices approach. But the reality is not so wonderful and one of the biggest pain is hidden inside distributed business transactions. In monolith application this topic is almost completely covered with DB level transactions. In distributed world you have to face many issues trying to implement reliable and consistent business logic.
In this talk we will review different types of problems related to distributed business transactions, popular SAGA pattern, frameworks and techniques to simplify your life without compromising quality of the system.
[FR] How did Amadeus build a LACE to support a global SAFe transformation for...Agile En Seine
Présenté en français par Sandra Bellong, Amadeus et Olivier Lafontan, leanpizza.com
For the last decade, Amadeus has experimented and learnt on how to deploy agility and more recently about how to deploy SAFe at the company level.
Converging Lean and Agile specialists in a single Agile Release Train and now in a line organization by creating a Lean-Agile Centre of Excellence reporting to both CTO and Human Resources, Amadeus is sharing in this presentation their way of driving Agility and SAFe deployment as well as their lessons learnt to get there.
Sandra Bellong will share the approach to build the LACE, its organization, the processes and tools, and Olivier Lafontan will share his return on experience as one of the LACE coaches and as an experienced external SAFe consultant, sharing concrete examples of tips and challenges.
Getting Started with Architecture Decision RecordsMichael Keeling
Documenting architecture design decisions is commonly considered a good practice and yet many teams don't take the time to write down the decisions they make. In our experience this happens for a few reasons: documentation is rejected as being too heavyweight, documentation has little influence since it is typically out of sight and out of mind, and many developers don’t know what to document. Architecture Decision Records (ADRs) address many of these problems by capturing design decisions in a simple, lightweight templates that is stored close to repositories used by stakeholders -- often in the same repository as code affected by the ADR.
In this hands-on workshop you will learn how to write effective ADRs and how to overcome road bumps teams often experience when first getting started with ADRs. By the end of this session you will have the skills you need to champion ADRs and help your team start (or improve) your design decision log.
An Overview of the AWS Cloud Adoption Framework - May 2017 AWS Online Tech TalksAmazon Web Services
Learning Objectives:
- Understand the six focus areas of the AWS CAF including Business, People, Governance, Platform, Security, and Operations Perspectives
- Understand the various stakeholders and what they own in the cloud adoption journey
- Understand how to create an action plan for your organization
Adopting Amazon Web Services (AWS) presents many benefits, such as increased business agility and flexibility, as well as reduced costs. However, in order to fully realize these benefits your staff may need to acquire new skills and create or update core processes. Doing so can maximize the business value and minimize the business risks of cloud adoption. The AWS Cloud Adoption Framework (AWS CAF) helps organizations understand how cloud adoption transforms the way they work, and it provides structure to identify and address gaps in skills and processes. In this webinar, you will learn how to apply the AWS CAF in your organization to create an actionable plan with defined work streams that can guide your organization’s path to cloud adoption. This framework leverages our experiences and best practices in assisting organizations around the world with their cloud adoption journey.
Building Cloud-Native App Series - Part 2 of 11
Microservices Architecture Series
Event Sourcing & CQRS,
Kafka, Rabbit MQ
Case Studies (E-Commerce App, Movie Streaming, Ticket Booking, Restaurant, Hospital Management)
Where to Begin? Application Portfolio Migration - Miha Kralj, Principal Consultant, AWS
Application portfolio assessment is a technique used at the beginning of enterprise application migration process. It helps migration team to gather, analyse and understand their app portfolio before deciding on priorities and sequences of application migration. This session will present the app assessment process, the most common migration strategies and tools, and the placement of application portfolio migration in a complete IT Transformation process.
CraftConf: Surviving the hyperautomation low code bubblBernd Ruecker
Slides from my talk at CraftConf Budapest in May 2023 about how developers can embrace and shape low code applications in their organizations to help the business automate more
How To Run a 5 Whys (With Humans, Not Robots)Dan Milstein
Slides from a talk at the Lean Startup conference (video link below).
Update: I've interleaved slides covering what I actually talked about onstage.
Update Update: video is up at http://www.ustream.tv/recorded/27482093/highlight/310486
In this presentation, I will explain event driven architecture, describe the different types of events, demonstrate how events can be related and orchestrated, and provide a basic understanding of how this method can drive the architecture of enterprise systems. In addition to understanding the concepts of event driven architecture, we will explore a working sample built using an open-source .NET messaging framework called MassTransit.
Event-driven architecture (EDA) is a software architecture pattern promoting the production, detection, consumption of, and reaction to events.
This architectural pattern may be applied by the design and implementation of applications and systems which transmit events among loosely coupled software components and services.
In this session you’ll learn how to create a loosely coupled architecture for your business that has the domain at the core. You’ll learn the basics of EDA, and also learn how we are transforming our architecture at Unibet.com to become event driven, and what benefits it will bring to our business. The session will cover technologies such as JMS, XML, JSON, Google Protocol Buffers, ActiveMQ and Spring.
http://wso2.com/library/webinars/2016/05/building-event-driven-systems/
Enterprises interact and integrate with a multitude of internal and external systems. Specific business requirements require these business level integrations to be implemented in an event driven manner. Additionally, there are instances where event driven integration patterns are used to achieve certain operational goals.
This webinar aims to
Identify common event driven integration patterns
Illustrate how WSO2 middleware can be used to design them
Saga about distributed business transactions in microservices worldMikalai Alimenkou
Most of people nowadays think microservices architecture is a great way to build any system. They visit conference talks, read books and review tutorials, where ‘hello world’ applications are built just in several minutes using microservices approach. But the reality is not so wonderful and one of the biggest pain is hidden inside distributed business transactions. In monolith application this topic is almost completely covered with DB level transactions. In distributed world you have to face many issues trying to implement reliable and consistent business logic.
In this talk we will review different types of problems related to distributed business transactions, popular SAGA pattern, frameworks and techniques to simplify your life without compromising quality of the system.
[FR] How did Amadeus build a LACE to support a global SAFe transformation for...Agile En Seine
Présenté en français par Sandra Bellong, Amadeus et Olivier Lafontan, leanpizza.com
For the last decade, Amadeus has experimented and learnt on how to deploy agility and more recently about how to deploy SAFe at the company level.
Converging Lean and Agile specialists in a single Agile Release Train and now in a line organization by creating a Lean-Agile Centre of Excellence reporting to both CTO and Human Resources, Amadeus is sharing in this presentation their way of driving Agility and SAFe deployment as well as their lessons learnt to get there.
Sandra Bellong will share the approach to build the LACE, its organization, the processes and tools, and Olivier Lafontan will share his return on experience as one of the LACE coaches and as an experienced external SAFe consultant, sharing concrete examples of tips and challenges.
Getting Started with Architecture Decision RecordsMichael Keeling
Documenting architecture design decisions is commonly considered a good practice and yet many teams don't take the time to write down the decisions they make. In our experience this happens for a few reasons: documentation is rejected as being too heavyweight, documentation has little influence since it is typically out of sight and out of mind, and many developers don’t know what to document. Architecture Decision Records (ADRs) address many of these problems by capturing design decisions in a simple, lightweight templates that is stored close to repositories used by stakeholders -- often in the same repository as code affected by the ADR.
In this hands-on workshop you will learn how to write effective ADRs and how to overcome road bumps teams often experience when first getting started with ADRs. By the end of this session you will have the skills you need to champion ADRs and help your team start (or improve) your design decision log.
An Overview of the AWS Cloud Adoption Framework - May 2017 AWS Online Tech TalksAmazon Web Services
Learning Objectives:
- Understand the six focus areas of the AWS CAF including Business, People, Governance, Platform, Security, and Operations Perspectives
- Understand the various stakeholders and what they own in the cloud adoption journey
- Understand how to create an action plan for your organization
Adopting Amazon Web Services (AWS) presents many benefits, such as increased business agility and flexibility, as well as reduced costs. However, in order to fully realize these benefits your staff may need to acquire new skills and create or update core processes. Doing so can maximize the business value and minimize the business risks of cloud adoption. The AWS Cloud Adoption Framework (AWS CAF) helps organizations understand how cloud adoption transforms the way they work, and it provides structure to identify and address gaps in skills and processes. In this webinar, you will learn how to apply the AWS CAF in your organization to create an actionable plan with defined work streams that can guide your organization’s path to cloud adoption. This framework leverages our experiences and best practices in assisting organizations around the world with their cloud adoption journey.
Building Cloud-Native App Series - Part 2 of 11
Microservices Architecture Series
Event Sourcing & CQRS,
Kafka, Rabbit MQ
Case Studies (E-Commerce App, Movie Streaming, Ticket Booking, Restaurant, Hospital Management)
Where to Begin? Application Portfolio Migration - Miha Kralj, Principal Consultant, AWS
Application portfolio assessment is a technique used at the beginning of enterprise application migration process. It helps migration team to gather, analyse and understand their app portfolio before deciding on priorities and sequences of application migration. This session will present the app assessment process, the most common migration strategies and tools, and the placement of application portfolio migration in a complete IT Transformation process.
WeAreDevelopers Live 2024 - Mastering long-running processes in modern archit...Bernd Ruecker
Slides from my talk at WeAreDevelopers Live on the Java Day about long-running processes. Code can be found here: https://github.com/berndruecker/customer-onboarding-camunda-8-springboot
Move fast and consumer driven contract test thingsAlon Pe'er
At SoundCloud, we’ve found that teams move faster when we’ve moved away from a monolith architecture to one based around microservices. Unfortunately, this new type of architecture has been prone to cascading failures when breaking changes go unnoticed in one of our services’ API’s. These failures have had a devastating impact on our system’s uptime, but we’ve found that we can mitigate some of this risk by introducing consumer driven contract tests.
Consumer driven contract tests allow each consumer service and client to define their expectations and interactions with each provider service upstream, and for provider services to verify all of these contracts as part of their build pipeline. Breakage avoided.
In this talk we’ll go through SoundCloud’s process of breaking the monolith into microservices, then see how PACT-based contract tests were introduced, and discuss some of the challenges of adopting such tests in an already-established microservices culture.
Migrating Your WordPress Site to HTTPS - Getting it right the first time Word...Paul Thompson
Discover step by step how to migrate your WordPress site to HTTPS successfully. Covers all the changes necessary ensure all functionality and SEO value is maintained during migration.
In this session, Tony will cover some tips, tricks and info covering HTTP baselining for troubleshooting, planning and security.
Specifically, Tony will discuss the following topics.
* HTTP items to document from within your packets
* HTTP commands
* What about proxies?
* Protocol forcing
* Looking for credentials
* Leveraging Wireshark for reporting, etc.
Again, this is a live episode so don't miss the rare opportunity to ask questions and make comments either before or during the show.
Process automation technology progressed massively over the last years and can handle modern scalability and resiliency requirements. It is not the dinosaur some people think it is!
Now there are super interesting combinations between Kafka and a workflow engine possible, such as starting or influencing process instances upon certain events in a stream, orchestrating microservices by writing commands as Kafka records, or using Kafka to collect information about decentralized process executions.
In this talk, I will briefly walk you through these possibilities presenting real-life use cases and some sample code using open source tools.
Microservices: What's Missing - O'Reilly Software Architecture New YorkAdrian Cockcroft
Assuming you have already figured out microservices, what else do you need to figure out to get them to work properly. This talk skips my usual introduction to why and what, and goes deeper on how.
Interested in building real-time apps like gmail or facebook? In many cases we need to notify clients immediately when something happens: stock prices, online games, chats, betting apps, etc. In this talk we will discuss how to design and build data-streaming API using WebSockets and other related technologies. We plan to cover problems and challenges and overview several libraries and products in this area.
#JaxLondon keynote: Developing applications with a microservice architectureChris Richardson
The micro-service architecture, which structures an application as a set of small, narrowly focused, independently deployable services, is becoming an increasingly popular way to build applications. This approach avoids many of the problems of a monolithic architecture. It simplifies deployment and let’s you create highly scalable and available applications. In this keynote we describe the micro-service architecture and how to use it to build complex applications. You will learn how techniques such as Command Query Responsibility Segregation (CQRS) and Event Sourcing address the key challenges of developing applications with this architecture. We will also cover some of the various frameworks such as Spring Boot that you can use to implement micro-services.
GOTOpia 2020 - Balancing Choreography and OrchestrationBernd Ruecker
Slides from my talk at GOTOpia November 2020 about the right balance between choreography (event-driven communication) and orchestration (command-driven communication)
CamundaCon 2020 Keynote - The Return of Process AutomationBernd Ruecker
Slides from my keynote at CamundaCon Live 2020.2
Title: The Return of Process Automation!
Abstract: This keynote will foster your understanding of how (business) processes can generally be implemented and monitored. I will compare different approaches, from batches over streaming, to workflow engines. You will understand the impact on agility and what is different in modern architectures, as well as learning about choreography and orchestration. You will learn about criteria that have crystalized as success factors in many real-life scenarios.
You will also understand the failures of BPM and process automation tooling in the past, which often lead to skepticism amongst different stakeholders.
Kafka Summit 2020: If an event is published to a topic and no one is around t...Bernd Ruecker
Slides from my talk "If an event is published to a topic and no one is around to consume it, does it make a sound?" at Kafka Summit Live in August 2020.
See recording here: https://www.confluent.de/resources/kafka-summit-2020/if-an-event-is-published-to-a-topic-and-no-one-is-around-to-consume-it-does-it-make-a-sound/
Camunda Con Live 2020 Keynote - Microservice Orchestration and IntegrationBernd Ruecker
Slides from my talk at Camunda Con Live on 24th of April 2020 about orchestrating and integrating microservices and the connection of choreography, observability and workflow automation
Slides from my talk at QCon London on March 3rd 2020. Abstract: Integrating microservices or other components is hard, as it involves taming distributed systems. New API technologies are great, but can't magically solve all underlying challenges. This talk distills real-life experiences around typical architecture patterns. You will understand why you have to carefully think about boundaries and responsibilities of all your components. Further you will see why balancing orchestration and choreography is essential to avoid chaos. We also need to talk about idempotency, long-running and event-driven services. Don’t worry if you are new here, I will use easy to understand examples. In the end you will have gained a better feeling how to make your API smarter.
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Jeffrey Haguewood
Sidekick Solutions uses Bonterra Impact Management (fka Social Solutions Apricot) and automation solutions to integrate data for business workflows.
We believe integration and automation are essential to user experience and the promise of efficient work through technology. Automation is the critical ingredient to realizing that full vision. We develop integration products and services for Bonterra Case Management software to support the deployment of automations for a variety of use cases.
This video focuses on the notifications, alerts, and approval requests using Slack for Bonterra Impact Management. The solutions covered in this webinar can also be deployed for Microsoft Teams.
Interested in deploying notification automations for Bonterra Impact Management? Contact us at sales@sidekicksolutionsllc.com to discuss next steps.
Neuro-symbolic is not enough, we need neuro-*semantic*Frank van Harmelen
Neuro-symbolic (NeSy) AI is on the rise. However, simply machine learning on just any symbolic structure is not sufficient to really harvest the gains of NeSy. These will only be gained when the symbolic structures have an actual semantics. I give an operational definition of semantics as “predictable inference”.
All of this illustrated with link prediction over knowledge graphs, but the argument is general.
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
Connector Corner: Automate dynamic content and events by pushing a buttonDianaGray10
Here is something new! In our next Connector Corner webinar, we will demonstrate how you can use a single workflow to:
Create a campaign using Mailchimp with merge tags/fields
Send an interactive Slack channel message (using buttons)
Have the message received by managers and peers along with a test email for review
But there’s more:
In a second workflow supporting the same use case, you’ll see:
Your campaign sent to target colleagues for approval
If the “Approve” button is clicked, a Jira/Zendesk ticket is created for the marketing design team
But—if the “Reject” button is pushed, colleagues will be alerted via Slack message
Join us to learn more about this new, human-in-the-loop capability, brought to you by Integration Service connectors.
And...
Speakers:
Akshay Agnihotri, Product Manager
Charlie Greenberg, Host
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties – USA
Expansion of bot farms – how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks – Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 3. In this session, we will cover desktop automation along with UI automation.
Topics covered:
UI automation Introduction,
UI automation Sample
Desktop automation flow
Pradeep Chinnala, Senior Consultant Automation Developer @WonderBotz and UiPath MVP
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
3. How does ordering Pizza work?
Pizza
Place
You
Phone Call
Synchronous blocking communication
Feedback loop (ack, confirmation or rejection)
Temporal coupling (e.g. busy, not answering)
Pizza
Place
You
Email
Asynchronous non-blocking communication
No temporal coupling
Pizza
Place
You
A feedback loop might make sense
(ack, confirmation or rejection)
Email
Confirmation Email
@berndruecker
4. Feedback loop != result
Pizza
Place
You
Email
Confirmation Email
Pizza Delivery
Feedback (ACK, confirmation, rejection)
Result
@berndruecker
8. Only the first communication step is synchronous
Pizza
Place
You
PUT/order
HTTP 200
Pizza Delivery
The task of
Pizza making is
long running
@berndruecker
9. Example: Build a pizza ordering app
PUT/order
HTTP 200:
„Got your order. Should
be delievered in roughly
41 minutes.“
Pizza Delivery
System
@berndruecker
10. Example: Build a pizza ordering app using events
PUT/order
HTTP 200:
„Got your order. Should
be delievered in roughly
41 minutes.“
Pizza Delivery
System
Hey – somebody
ordered
Hey – Pizza is
ready
I have a Pizza
for you
@berndruecker
11. PUT/order
HTTP 200:
„Got your order. Should
be delievered in roughly
41 minutes.“
Pizza Delivery
System
Hey – somebody
ordered
Hey – Pizza is
ready
I have a Pizza
for you
How do I make sure the
Pizza is not forgotten?
Example: Build a pizza ordering app using events
@berndruecker
12. Command vs. event-based communication
Pizza
Place
You
I order this pizza
OK – got it
Command = Intent
Cannot be ignored
Independant of communication channel
Pizza
Place
You
„Hey – I am hungry!“
Event = Fact
Sender can't control what happens
@berndruecker
13. Definitions
Event = Something happened in the past. It is a fact.
Sender does not know who picks up the event.
Command = Sender wants s.th. to happen. It has an intent.
Recipient does not know who issued the command.
@berndruecker
14. Events vs. Commands
„Pizza Salmon
is ready!“
I baked this pizza for Andrea.
Please package it immediately and
deliver it while it‘s hot!
@berndruecker
16. Example: Build a pizza ordering app via orchestration
PUT/order
HTTP 200:
„Got your order. Should
be delievered in roughly
41 minutes.“
Pizza Delivery
System
But how to implement
long-running things?
@berndruecker
18. An orchestration engine provides long running capabilities
Orchestration Engine
Scheduler
Durable State
Process Definitions
V1
V2
Orchestration Engine:
Is stateful
Can wait
Can retry
Can escalate
Can compensate
Provides visibility
@berndruecker
30. Order
Fulfillment
Collaboration style is independant of communication style
Checkout
Payment
Inventory
Shipment
Payment
received
Order
placed
Retrieve
payment
@berndruecker
Choreography
Orchestration
Asynchronous
non-blocking
Asynchronous
non-blocking
Synchronous
blocking
33. Mix orchestration and choreography
Orchestration
Orchestration
Orchestration
Choreography
@berndruecker
34. Want to learn more about choreography vs. orchestration?
https://learning.oreilly.com/library/view/practical-process-automation/9781492061441/
30 days trial: https://learning.oreilly.com/get-learning/?code=PPAER20
Recording from QCon: https://drive.google.com/file/d/1IRWoQCX-gTPs7RVP5VrXaF1JozYWVbJv/view?usp=sharing
Slides: https://www.slideshare.net/BerndRuecker/gotopia-2020-balancing-choreography-and-orchestration
35. Communication Options – Quick Summary
Communication
Style
Synchronous
Blocking
Asynchronous
Non-Blocking
Collaboration
Style
Command-Driven Event-Driven
Example REST
Messaging
(Queues)
Messaging
(Topics)
Feedback Loop
HTTP
Response
Response
Message
-
Pizza Ordering via Phone Call E-Mail Twitter
This is not the
same!
@berndruecker
37. Types of Coupling
Type of coupling Description Example Recommendation
Implementation Coupling Service knows internals of
other services
Joined database Avoid
@berndruecker
38. Types of Coupling
Type of coupling Description Example Recommendation
Implementation Coupling Service knows internals of
other services
Joined database Avoid
@berndruecker
39. Types of Coupling
Type of coupling Description Example Recommendation
Implementation Coupling Service knows internals of
other services
Joined database Avoid
Temporal Coupling Service depends on
availability of other
services
Synchronous blocking
communication
Reduce or manage
@berndruecker
40. Types of Coupling
Type of coupling Description Example Recommendation
Implementation Coupling Service knows internals of
other services
Joined database Avoid
Temporal Coupling Service depends on
availability of other
services
Synchronous blocking
communication
Reduce or manage
@berndruecker
41. Types of Coupling
Type of coupling Description Example Recommendation
Implementation Coupling Service knows internals of
other services
Joined database Avoid
Temporal Coupling Service depends on
availability of other
services
Synchronous blocking
communication
Reduce or manage
Deployment Coupling Multiple services can only
be deployed together
Release train Typically avoid, but
depends
@berndruecker
42. Types of Coupling
Type of coupling Description Example Recommendation
Implementation Coupling Service knows internals of
other services
Joined database Avoid
Temporal Coupling Service depends on
availability of other
services
Synchronous blocking
communication
Reduce or manage
Deployment Coupling Multiple services can only
be deployed together
Release train Typically avoid, but
depends
@berndruecker
43. Types of Coupling
Type of coupling Description Example Recommendation
Implementation Coupling Service knows internals of
other services
Joined database Avoid
Temporal Coupling Service depends on
availability of other
services
Synchronous blocking
communication
Reduce or manage
Deployment Coupling Multiple services can only
be deployed together
Release train Typically avoid, but
depends
Domain Coupling Business capabilities
require multiple services
Order fulfillment requires
payment, inventory and
shipping
Unavoidable unless you
change business
requirements or service
boundaries
@berndruecker
44. Types of Coupling
Type of coupling Description Example Recommendation
Implementation Coupling Service knows internals of
other services
Joined database Avoid
Temporal Coupling Service depends on
availability of other
services
Synchronous blocking
communication
Reduce or manage
Deployment Coupling Multiple services can only
be deployed together
Release train Typically avoid, but
depends
Domain Coupling Business capabilities
require multiple services
Order fulfillment requires
payment, inventory and
shipping
Unavoidable unless you
change business
requirements or service
boundaries
This is influenced with the communication
or collaboration style
@berndruecker
46. Patterns To Survive Remote Communication
Service
Consumer
Pattern/Concept Use With
Service
Provider
X Service Discovery Sync (X)
X Circuit Breaker Sync
X Bulkhead Sync
(X) Load Balancing Sync X
X Retry Sync / Async
X Idempotency Sync / Async X
De-duplication Async X
(X) Back Pressure & Rate Limiting Sync / (Async) X
X Await feedback Async
X Sagas Sync / Async (X) …
@berndruecker
52. Patterns To Survive Remote Communication
Service
Consumer
Pattern/Concept Use With
Service
Provider
X Service Discovery Sync (X)
X Circuit Breaker Sync
X Bulkhead Sync
(X) Load Balancing Sync X
X Retry Sync / Async
X Idempotency Sync / Async X
De-duplication Async X
(X) Back Pressure & Rate Limiting Sync / (Async) X
X Await feedback Async
X Sagas Sync / Async (X) …
53. Summary
• Know
• communication styles (sync/async)
• collaboration styles (command/event)
• You can get rid of temporal coupling with asynchronous communication
• Make sure you or your team can handle it
• You will need long running capabilities (you might need it anyway)
• Synchronous communication + correct patterns might also be OK
• Domain coupling does not go away!
@berndruecker
54. Want to learn more…
https://ProcessAutomationBook.com/