Slides from my talk at O'Reilly Software Architecture Conference in New York City on 28th of February 2018. Code from the demo is available: http://github.com/flowing/flowing-retail
Java User Group Erfurt 2018: Zeebe.io - Event-driven Microservice OrchestrationBernd Ruecker
Slides from my talk at JUG Erfurt on 22nd or march 2018.
Sample code available: https://github.com/flowing/flowing-retail/tree/zeebe
Recording in German available: https://youtu.be/lZIe02um5eI
Java User Group Maas-Rhine February 2018: 7 sins of workflowBernd Ruecker
Slides from my talk at Eureg JUG Aachen in February 2018. You can find the recoding here: https://youtu.be/hS-4hjeFjt0. Code is available: http://github.com/flowing/flowing-retail and https://github.com/flowing/flowing-retail/tree/master/payment-rest.
Jfokus 2018: Lost in transaction - Strategies to deal with (in-)consistency ...Bernd Ruecker
The document discusses the challenges of distributed systems including asynchronicity, failures, and transactions. It recommends using circuit breakers to handle failures gracefully, workflow engines to manage state and retries across services, and event-driven architectures with compensation for eventual consistency when transactions span multiple services. The document provides examples of how these approaches can help solve common problems in distributed systems.
QCon London 2018: 3 common pitfalls in microservice integration and how to av...Bernd Ruecker
Talk at QCon London. Based on an article in InfoWorld (https://www.infoworld.com/article/3254777/application-development/3-common-pitfalls-of-microservices-integrationand-how-to-avoid-them.html).
Source code available: https://github.com/flowing/flowing-retail/tree/master/payment-rest
Recording available: https://youtu.be/O2-NHptllKQ
The document discusses process automation and provides a "Process Automation Map" to help determine the appropriate approach. The map considers factors like process complexity, scale, and whether a process is standard or unique. It suggests different automation approaches may be suitable for different process types. These include commercial off-the-shelf software, low-code development, and tailor-made/pro-code solutions. Case studies are presented showing how various organizations have benefited from process automation.
Workflow automation with BPMN. Lessons learned.Bernd Ruecker
This document discusses workflow automation using BPMN. It provides examples of common workflow patterns like human tasks, service orchestration, and event handling. It discusses important considerations for workflow engines like avoiding homegrown solutions, using the right engine, and handling requirements over time. Common use cases for workflow automation are also presented, including long-running business processes, distributed transactions, orchestration of microservices, and decision automation. The document emphasizes that workflow automation is useful for business, development and operations teams to model processes, gain visibility, and communicate effectively.
Webinar: Monitoring & Orchestrating Your Microservices Landscape using Workfl...camunda services GmbH
A company’s core business processes nearly always span more than one microservice. In an e-commerce company, for example, a “customer order” might involve different services for payments, inventory, shipping and more. But how do these services play together to fulfill the customer’s desire?
Implementing long-running, asynchronous, and complex collaborations between distributed microservices is challenging. How can we ensure visibility of cross-microservice flows and provide status and error monitoring? How do we guarantee that overall flows always complete, even if single services fail? Or how do we recognize stuck flows so that we can fix them?
In this webinar, Bernd will explain how workflow automation supports the orchestration of microservices, to make sure business processes are always carried out - even in case of failure -
providing monitoring and visibility into the overall progress and status.
He will reveal how to do all of this without introducing monolithic workflows that clash with microservices principles. You will also learn how to balance orchestration (using a workflow engine) with choreography (using events). Still believe that choreography is more loosely coupled and thus the modern way to go? You definitely need to listen in…
A new era calls for new IT paradigms. What does this mean for BPM?Bernd Ruecker
This document discusses new IT paradigms for business process management in a microservices architecture. It explores challenges of distributed systems like asynchronous communication, distributed transactions, and handling timeouts and failures. It also discusses approaches like orchestration, choreography and event-driven architectures. The document advocates an approach where end-to-end processes are first-class citizens but the execution respects service boundaries and distributes ownership.
MuCon London 2017: Break your event chainsBernd Ruecker
- The document discusses breaking event chains, decentralizing control, and alternatives to workflow engines for orchestrating microservices. It argues that events can decrease coupling but also increase it, and that central control should be avoided but important long-running capabilities still need ownership. Lightweight workflow engines are presented as a better alternative to DIY orchestration since they address hard problems and can run decentralized.
The document discusses workflow automation and compares different approaches. It argues that workflow engines can implement stateful orchestration logic to coordinate distributed systems and ensure consistency. Modern architectures require workflow automation to handle long-running processes, orchestrate microservices, implement sagas for distributed transactions, and automate business decisions. Leading open-source workflow engines like Camunda and Zeebe are horizontally scalable and resilient.
3 common pitfalls in microservice integrationBernd Ruecker
The document discusses 3 common pitfalls in microservice integration:
1. Asynchronicity - asynchronous communication introduces complexity in monitoring timeouts.
2. Distributed transactions - distributed transactions are challenging due to the possibility of temporarily inconsistent states. Compensation patterns can help address this.
3. Communication complexity - communication between services is complex due to failures, retries, and idempotency requirements.
It recommends using workflow engines to help address these pitfalls by enabling stateful retries, timeouts, compensation, and keeping failures local. This provides better resilience compared to traditional messaging approaches.
Slides from a talk held at WJAX Munic on 9th of November (and some other meetups later in November) about how to tackle collaboration of microservices.
Most of the talk was live coding, the respective code is here: https://github.com/flowing/flowing-retail.
Monitoring and Orchestration of your Microservices Landscape with Kafka and Z...Bernd Ruecker
This document discusses monitoring and orchestrating microservices using Kafka and Zeebe. It describes how event-driven architectures with peer-to-peer event chains can decouple services but lose visibility of the overall workflow. Using stateful orchestration with Zeebe allows extracting the end-to-end workflow responsibility while still leveraging messaging. Zeebe supports BPMN, visibility of workflows across services, and hybrid architectures. Finding the right balance of loose coupling, autonomy and flow manageability is key.
JAX 2017 talk: Orchestration of microservicesBernd Ruecker
This document discusses orchestrating microservices using event-driven communication and process managers. It describes how microservices communicate asynchronously using events without direct knowledge of each other. Process managers listen for events, transform them into commands, and handle long-running workflows and state. This approach provides visibility into end-to-end processes while maintaining autonomy and decoupling between microservices. The document also cautions against over-engineering with complex BPM suites and recommends using lightweight, embeddable process engines.
Slides from my talk held in 2019, e.g. at QCon, MicroXchg, JPoint Moscow or JavaLand...
See https://berndruecker.io/lost-in-transaction/ for details
November 2017: Collaboration of (micro-)servicesBernd Ruecker
Slides from a talk held at WJAX Munic on 9th of November (and some other meetups later in November) about how to tackle collaboration of microservices.
Most of the talk was live coding, the respective code is here: https://github.com/flowing/flowing-retail.
Process Automation Forum April 2021 - Practical Process AutomationBernd Ruecker
The document discusses process automation and compares it to robotic process automation (RPA). It outlines different types of process automation scenarios based on factors like process complexity, scale, and scope. Examples are provided of companies like Helsana and Zalando that have successfully used process automation with Camunda to automate insurance applications and online order fulfillment. The document also provides an example architecture of a process automation implementation and discusses what is needed for organizations to get started with process automation.
QCon 2019 - Opportunities and Pitfalls of Event-Driven UtopiaBernd Ruecker
The document discusses the opportunities and pitfalls of event-driven architectures. It describes how events can be used internally in services to build scalable systems, but reads and queries require additional consideration. It also examines using events externally between services, with challenges around distinguishing commands from events and maintaining awareness of business processes despite increased decoupling between services. Overall, the document cautions that while event-driven designs can increase flexibility, it is important not to lose sight of larger business flows and processes.
JFS 2017 - Orchestration of microservicesBernd Ruecker
This document discusses orchestrating microservices using event-driven architectures and process managers. It describes how independent microservices can collaborate by publishing domain events to which other services subscribe. While this loose coupling is beneficial, long-running processes require persistent state management. The document recommends using a process manager to handle event-command transformation and state for long-running flows, providing visibility, versioning, and other capabilities. It warns against creating monolithic workflows across microservices and advocates defining local flows within bounded contexts.
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
Serverless Days 2019 - Lost in transactionBernd Ruecker
1) The document discusses strategies for managing consistency in serverless architectures, including function coordination, choreography, and orchestration approaches.
2) It notes the challenges of distributed transactions and emphasizes the need for eventual consistency and idempotent functions.
3) Common patterns for coordinating functions are examined, including sagas with compensation handling and workflow/orchestration with a coordinator function.
JUG Amsterdam - Orchestration of microservicesBernd Ruecker
This document discusses orchestrating microservices and implementing event-driven architectures. It describes challenges in distributed systems like synchronous vs asynchronous collaboration. It presents the saga pattern for distributed transactions and discusses using BPMN for modeling processes across microservices. The document demonstrates a live example using Flowing and introduces the Zeebe workflow engine for distributed orchestration in microservices architectures.
JUG Frankfurt - Orchestration of microservicesBernd Ruecker
Slides from my talk held at JUG Frankfurt on 27th of September 2017 about microservice orchestration. Source code for the live hacking is here: https://github.com/flowing/flowing-retail
Complex event flows in distributed systemsBernd Ruecker
The document discusses event-driven architectures and workflow engines in distributed systems. It argues that while events can decrease coupling between services, overuse of peer-to-peer event chains can lose visibility of the overall process flow. It also argues that while orchestration should be avoided, workflow engines can be lightweight and useful for managing long-running processes and state in modern architectures.
Complex Event Flows in Distributed Systems (Bernd Ruecker, Camunda) Kafka Sum...confluent
Event-driven architectures enable nicely decoupled microservices and are fundamental for decentral data management. However, using peer-to-peer event chains to implement complex end-to-end logic crossing service boundaries can accidentally increase coupling. Extracting such business logic into dedicated services reduces coupling and allows to keep sight of larger-scale flows – without violating bounded contexts, harming service autonomy or introducing god services. Service boundaries get clearer and service APIs get smarter by focusing on their potentially long running nature. I will demonstrate how the new generation of lightweight and highly-scalable state machines ease the implementation of long running services. Based on my real-life experiences, I will share how to handle complex logic and flows which require proper reactions on failures, timeouts and compensating actions and provide guidance backed by code examples to illustrate alternative approaches.
A new era calls for new IT paradigms. What does this mean for BPM?Bernd Ruecker
This document discusses new IT paradigms for business process management in a microservices architecture. It explores challenges of distributed systems like asynchronous communication, distributed transactions, and handling timeouts and failures. It also discusses approaches like orchestration, choreography and event-driven architectures. The document advocates an approach where end-to-end processes are first-class citizens but the execution respects service boundaries and distributes ownership.
MuCon London 2017: Break your event chainsBernd Ruecker
- The document discusses breaking event chains, decentralizing control, and alternatives to workflow engines for orchestrating microservices. It argues that events can decrease coupling but also increase it, and that central control should be avoided but important long-running capabilities still need ownership. Lightweight workflow engines are presented as a better alternative to DIY orchestration since they address hard problems and can run decentralized.
The document discusses workflow automation and compares different approaches. It argues that workflow engines can implement stateful orchestration logic to coordinate distributed systems and ensure consistency. Modern architectures require workflow automation to handle long-running processes, orchestrate microservices, implement sagas for distributed transactions, and automate business decisions. Leading open-source workflow engines like Camunda and Zeebe are horizontally scalable and resilient.
3 common pitfalls in microservice integrationBernd Ruecker
The document discusses 3 common pitfalls in microservice integration:
1. Asynchronicity - asynchronous communication introduces complexity in monitoring timeouts.
2. Distributed transactions - distributed transactions are challenging due to the possibility of temporarily inconsistent states. Compensation patterns can help address this.
3. Communication complexity - communication between services is complex due to failures, retries, and idempotency requirements.
It recommends using workflow engines to help address these pitfalls by enabling stateful retries, timeouts, compensation, and keeping failures local. This provides better resilience compared to traditional messaging approaches.
Slides from a talk held at WJAX Munic on 9th of November (and some other meetups later in November) about how to tackle collaboration of microservices.
Most of the talk was live coding, the respective code is here: https://github.com/flowing/flowing-retail.
Monitoring and Orchestration of your Microservices Landscape with Kafka and Z...Bernd Ruecker
This document discusses monitoring and orchestrating microservices using Kafka and Zeebe. It describes how event-driven architectures with peer-to-peer event chains can decouple services but lose visibility of the overall workflow. Using stateful orchestration with Zeebe allows extracting the end-to-end workflow responsibility while still leveraging messaging. Zeebe supports BPMN, visibility of workflows across services, and hybrid architectures. Finding the right balance of loose coupling, autonomy and flow manageability is key.
JAX 2017 talk: Orchestration of microservicesBernd Ruecker
This document discusses orchestrating microservices using event-driven communication and process managers. It describes how microservices communicate asynchronously using events without direct knowledge of each other. Process managers listen for events, transform them into commands, and handle long-running workflows and state. This approach provides visibility into end-to-end processes while maintaining autonomy and decoupling between microservices. The document also cautions against over-engineering with complex BPM suites and recommends using lightweight, embeddable process engines.
Slides from my talk held in 2019, e.g. at QCon, MicroXchg, JPoint Moscow or JavaLand...
See https://berndruecker.io/lost-in-transaction/ for details
November 2017: Collaboration of (micro-)servicesBernd Ruecker
Slides from a talk held at WJAX Munic on 9th of November (and some other meetups later in November) about how to tackle collaboration of microservices.
Most of the talk was live coding, the respective code is here: https://github.com/flowing/flowing-retail.
Process Automation Forum April 2021 - Practical Process AutomationBernd Ruecker
The document discusses process automation and compares it to robotic process automation (RPA). It outlines different types of process automation scenarios based on factors like process complexity, scale, and scope. Examples are provided of companies like Helsana and Zalando that have successfully used process automation with Camunda to automate insurance applications and online order fulfillment. The document also provides an example architecture of a process automation implementation and discusses what is needed for organizations to get started with process automation.
QCon 2019 - Opportunities and Pitfalls of Event-Driven UtopiaBernd Ruecker
The document discusses the opportunities and pitfalls of event-driven architectures. It describes how events can be used internally in services to build scalable systems, but reads and queries require additional consideration. It also examines using events externally between services, with challenges around distinguishing commands from events and maintaining awareness of business processes despite increased decoupling between services. Overall, the document cautions that while event-driven designs can increase flexibility, it is important not to lose sight of larger business flows and processes.
JFS 2017 - Orchestration of microservicesBernd Ruecker
This document discusses orchestrating microservices using event-driven architectures and process managers. It describes how independent microservices can collaborate by publishing domain events to which other services subscribe. While this loose coupling is beneficial, long-running processes require persistent state management. The document recommends using a process manager to handle event-command transformation and state for long-running flows, providing visibility, versioning, and other capabilities. It warns against creating monolithic workflows across microservices and advocates defining local flows within bounded contexts.
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
Serverless Days 2019 - Lost in transactionBernd Ruecker
1) The document discusses strategies for managing consistency in serverless architectures, including function coordination, choreography, and orchestration approaches.
2) It notes the challenges of distributed transactions and emphasizes the need for eventual consistency and idempotent functions.
3) Common patterns for coordinating functions are examined, including sagas with compensation handling and workflow/orchestration with a coordinator function.
JUG Amsterdam - Orchestration of microservicesBernd Ruecker
This document discusses orchestrating microservices and implementing event-driven architectures. It describes challenges in distributed systems like synchronous vs asynchronous collaboration. It presents the saga pattern for distributed transactions and discusses using BPMN for modeling processes across microservices. The document demonstrates a live example using Flowing and introduces the Zeebe workflow engine for distributed orchestration in microservices architectures.
JUG Frankfurt - Orchestration of microservicesBernd Ruecker
Slides from my talk held at JUG Frankfurt on 27th of September 2017 about microservice orchestration. Source code for the live hacking is here: https://github.com/flowing/flowing-retail
Complex event flows in distributed systemsBernd Ruecker
The document discusses event-driven architectures and workflow engines in distributed systems. It argues that while events can decrease coupling between services, overuse of peer-to-peer event chains can lose visibility of the overall process flow. It also argues that while orchestration should be avoided, workflow engines can be lightweight and useful for managing long-running processes and state in modern architectures.
Complex Event Flows in Distributed Systems (Bernd Ruecker, Camunda) Kafka Sum...confluent
Event-driven architectures enable nicely decoupled microservices and are fundamental for decentral data management. However, using peer-to-peer event chains to implement complex end-to-end logic crossing service boundaries can accidentally increase coupling. Extracting such business logic into dedicated services reduces coupling and allows to keep sight of larger-scale flows – without violating bounded contexts, harming service autonomy or introducing god services. Service boundaries get clearer and service APIs get smarter by focusing on their potentially long running nature. I will demonstrate how the new generation of lightweight and highly-scalable state machines ease the implementation of long running services. Based on my real-life experiences, I will share how to handle complex logic and flows which require proper reactions on failures, timeouts and compensating actions and provide guidance backed by code examples to illustrate alternative approaches.
Communication between (micro-)services - Bernd Rücker - Codemotion Amsterdam ...Codemotion
Checkout Payment Inventory Shipment
The document discusses communication between microservices and distributed systems. It notes that event-driven architectures can decrease coupling, but peer-to-peer event chains are not suitable for complex flows. Distributed systems introduce challenges around consistency that require handling state. Workflow engines can help services collaborate by sorting out consistency issues and providing distributed orchestration owned by individual services.
Complex event flows in distributed systems (QCon London 2019)Bernd Ruecker
Slides from my talk at QCon London on 5th of March 2019. More information can be found here: https://berndruecker.io/complex-event-flows-in-distributed-systems/
Abstract: Event-driven architectures enable nicely decoupled microservices and are fundamental for decentral data management. However, using peer-to-peer event chains to implement complex end-to-end logic crossing service boundaries can accidentally increase coupling. Extracting such business logic into dedicated services reduces coupling and allows to keep sight of larger-scale flows - without violating bounded contexts, harming service autonomy or introducing god services. Service boundaries get clearer and service APIs get smarter by focusing on their potentially long running nature. I will demonstrate how the new generation of lightweight and highly-scalable state machines ease the implementation of long running services. Based on my real-life experiences, I will share how to handle complex logic and flows which require proper reactions on failures, timeouts and compensating actions and provide guidance backed by code examples to illustrate alternative approaches.
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.
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
Automating Processes in Modern ArchitecturesBernd Ruecker
1) Automating long-running processes in modern architectures can be achieved through using a workflow engine. Workflow engines provide capabilities like persistence of state, retries, and error handling.
2) While event-driven and reactive architectures are popular, relying solely on event choreography can result in lost visibility of larger processes and future problems.
3) Orchestration of services and tasks using a workflow engine embedded within a service provides process automation while avoiding tight coupling between services. This allows decentralized orchestration while maintaining state.
Goto meetup Stockholm - Let your microservices flowBernd Ruecker
Slides from my talk at the GOTO meetup in Stockholm on 5th of April 2017. The talk is about the flow in microservices, so how a bunch of loosely coupled microservices can fulfill an overall business goal.
Talk given at DDDx London on 27th of April about how to implement long running processes in Domain Driven Design properly. Describes patterns like Process Manager and Saga.
CamundaCon 2018: The Role of Workflows in Microservices (Camunda)camunda services GmbH
Presented by Bernd Rücker, Co-Founder of Camunda
With microservices (or serverless functions) whole architectures are cut into smaller pieces that are ideally loosely coupled. In this talk I will discuss what this means for business processes that typically span more than one microservice. I will tackle questions like: How can we ensure visibility of cross-microservice flows and provide status and error monitoring? How do we guarantee that overall flows always complete, even if single services fail? How can do this without introducing tight coupling or harming service autonomy? What does this mean for your architecture and the role of workflow automation technology within it?
O'Reilly SA: Complex event flows in distributed systemsBernd Ruecker
Talk held at O'Reilly Software Architecture Conference London together with @martinschimak on 16th of October 2017. It is about how to tackle complex event flows in distributed systems (which could be e.g. event-driven microservices).
Code from live hacking example is here: https://github.com/flowing/flowing-retail
Camunda Day New York 2019: Workflow Automation in Microservices Architectures...camunda services GmbH
Many Camunda users start to adopt microservices. In this presentation Bernd Rücker, Co-founder of Camunda, shares experiences and best practices on how to apply BPMN and the Camunda platform in your microservices architecture. `He’ll tackle questions around how you can slice end-to-end business processes into appropriate pieces, how many engines you should operate and how to keep in control.
JCon Live 2023 - Lice coding some integration problemsBernd Ruecker
Slides from my talk at JCon live on 21st of November 2023. Code examples are here: https://github.com/berndruecker/flowing-retail/
Monitoring and Orchestration of your Microservices Landscape with Kafka and Z...Bernd Ruecker
Slides from a joined meetup of Confluent/Kafka and Camunda/Zeebe in October 2019.
Code is here: https://github.com/berndruecker/flowing-retail/tree/master/kafka
The Big Picture: Monitoring and Orchestration of Your Microservices Landscape...confluent
(Bernd Ruecker, Camunda) Kafka Summit SF 2018
A company’s business processes typically span more than one microservice. In an e-commerce company, for example, a customer order might involve microservices for payments, inventory, shipping and more. Implementing long-running, asynchronous and complex collaboration of distributed microservices is challenging. How can we ensure visibility of cross-microservice flows and provide status and error monitoring? How do we guarantee that overall flows always complete, even if single services fail? Or, how do we at least recognize stuck flows so that we can fix them?
In this talk, I’ll demonstrate an approach based on real-life projects using the open source workflow engine zeebe.io to orchestrate microservices. Zeebe can connect to Kafka to coordinate workflows that span many microservices, providing end-to-end process visibility without violating the principles of loose coupling and service independence. Once an orchestration flow starts, Zeebe ensures that it is eventually carried out, retrying steps upon failure. In a Kafka architecture, Zeebe can easily produce events (or commands) and subscribe to events that will be correlated to workflows. Along the way, Zeebe facilitates monitoring and visibility into the progress and status of orchestration flows. Internally, Zeebe works as a distributed, event-driven and event-sourced system, making it not only very fast but horizontally scalable and fault tolerant—and able to handle the throughput required to operate alongside Kafka in a microservices architecture. Expect not only slides but also fun little live-hacking sessions and real-life stories.
Kafka Summit 2018: Monitoring and Orchestration of Your Microservices Landsca...Bernd Ruecker
Slides from my talk at the Kafka Summit San Francisco 2018 about orchestration vs. choreography as well as track vs. manage event flows. Source code for live demos available on https://github.com/berndruecker/flowing-retail
Master the flow of microservices - because your business is more complex than...Bernd Ruecker
- The document discusses using microservices and event-driven architecture together with orchestration. It notes that while events allow for loose coupling, tracking logical flows across services can become difficult.
- An order handling example is presented to illustrate challenges like a payment service needing to know all possible events that could trigger a payment. This calls for introducing an order service to handle event-command transformation and orchestration across services.
- The document argues that modern lightweight workflow engines can be embedded within microservices to enable orchestration without introducing a centralized point of control. This allows logical flows to be modeled and changes to be made without affecting individual services.
Event mesh APIDays melbourne September 2019Phil Scanlon
Talk Title: Async API’s, Event Mesh and the Event Portal – Real time responsive API: Simple, Modern, Governed
Abstract: How data moves to and from applications is critical to the application's health and function, but it's a decision that's often-given little thought: REST-over-HTTP of course. But REST/HTTP based communication can limit the performance and functionality of modern applications and architectures – it is not a communication pattern well-suited for event-driven microservices, or for IoT and hybrid cloud use cases. This talk will explore how modern event brokers improve over today’s API approach by enabling real-time, bidirectional communication between and inside applications, across data centres, clouds and continents using the publish-subscribe architecture pattern. It will highlight key capabilities of an event broker for different use cases, and discuss features to look for such as AsyncAPI to help easily integrate with your existing DevOps tooling. You'll walk away from the session with a thorough understanding of event brokers and how to use them to enable modern apps and architectures.
This document discusses how workflow engines can be used with Apache Kafka to enable scalable orchestration of processes and events. A workflow engine provides capabilities for modeling business processes and orchestrating the steps in a process. When integrated with Apache Kafka, it allows processes to react to events published to Kafka topics. This enables building distributed applications through a combination of choreography (peer-to-peer communication) and orchestration (centralized workflow coordination). Examples of use cases include order fulfillment processes across microservices and vehicle maintenance workflows that react to sensor data streams. The document provides a code example of integrating Camunda workflow engine with Kafka and Confluent Cloud.
QCon London: Mastering long-running processes in modern architecturesBernd Ruecker
The document discusses long-running processes in modern architectures and how process orchestration engines can help address challenges with long-running processes. It provides examples of how ordering a pizza or making a payment can involve long-running and asynchronous steps. It argues that process orchestration capabilities are needed to reliably handle long-running processes and failures. A center of excellence model is recommended to enable teams with these capabilities.
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
iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas...Bernd Ruecker
This document discusses process orchestration and how it can increase agility without harming architecture. It begins by defining orchestration as command-driven communication and choreography as event-driven communication. It argues that while choreography allows for easy initial development, it can lead to technical debt over time by losing sight of larger business processes. Orchestration embraces asynchronicity and long-running processes to better model domain logic and responsibilities. This allows placing processes within service boundaries rather than having a few "god services". The document advocates balancing both orchestration and choreography based on responsibility and direction of coupling. It also suggests a center of excellence can help provide infrastructure while individual domains focus on solution delivery.
The document discusses legacy systems and their limitations, including a lack of end-to-end automation and flexibility. It then introduces process orchestration as a way to integrate local automations, provide end-to-end visibility of processes, and increase flexibility. Key benefits of process orchestration mentioned are running anywhere, supporting any programming language, and natively integrating into existing systems.
JavaLand 2023 - Process Oriented IntegrationBernd Ruecker
The document discusses speeding up the bank account opening process. It identifies three key issues with the current process: 1) a lack of end-to-end automation where local automations are not integrated, 2) a lack of understanding of the full end-to-end process as key metrics are difficult to track, and 3) a lack of flexibility to change the process as it could impact multiple systems.
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
Mastering Data for Higher Business Impact - at Commerzbank Innovation SummitBernd Ruecker
Short talk as opener for a panel at Commerzbank's API Innovation Summit 2022, Recording available here: https://www.youtube.com/watch?v=Piczb0Q3ryw
The document discusses how to effectively automate business processes using both low-code and pro-code development. It advocates categorizing use cases as green, yellow, or red based on their complexity, criticality, and compliance needs in order to determine whether low-code, guided development, or professional development is most suitable. Connectors are described as a key part of the low-code platform that allow processes to integrate various systems and "run anywhere".
Loosely or lousily coupled - Understanding communication patterns in microser...Bernd Ruecker
The document discusses communication patterns in microservices architectures, specifically comparing synchronous vs asynchronous communication and command-driven vs event-driven collaboration styles. It uses examples around ordering a pizza to illustrate these concepts, showing how an orchestrator can coordinate both synchronous and asynchronous long-running processes. The document argues that both orchestration and choreography have advantages and the styles can be mixed together.
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/)
This document discusses communication patterns in microservices architectures. It compares synchronous vs asynchronous communication and how they impact coupling between services. It defines different types of coupling, such as implementation, temporal, deployment, and domain coupling, and provides recommendations for how to reduce or manage each type of coupling. Remote communication patterns like circuit breakers, retries, and sagas are presented for surviving communication failures between loosely coupled services.
CamundaCon 2021 Keynote :From Human Workflow to High-Throughput Process Autom...Bernd Ruecker
This document discusses process automation and the different types of tools available. It begins by listing various process automation platforms and categorizing them as either low-code or pro-code. It then outlines a typical adoption journey from human tasks to full process automation. Key differences between task and process automation are explained. The rest of the document dives deeper into concepts like process complexity, scale, and the tradeoffs between standard, tailor-made, and open-source process automation solutions. Case studies and a map are used to illustrate examples across these different dimensions.
Micronaut Webinar 2021 - Process Automation IntroductionBernd Ruecker
Slides from the joined webinar of Novatec, Micronaut and Camunda, see https://micronaut.io/2021/02/25/webinar-micronaut-and-camunda/
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)
Reactive Summit 2020 - How state helps you to stay reactiveBernd Ruecker
The document discusses long running processes and transactions in distributed systems. It describes the challenges of using event-driven architectures without coordination. It presents orchestration and choreography patterns for implementing long running workflows across multiple services. Orchestration with a workflow engine provides capabilities for coordination, state management, and handling failures compared to event-driven choreography alone. Graphical models like BPMN can be used to define and document orchestration workflows.
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.
Destination Automation: Automating Processes in Modern Hipster ArchitecturesBernd Ruecker
Slides for my talk at #DestinationAutomation in July 2020. Code examples are here: https://github.com/berndruecker/ticket-booking-camunda-cloud
PyData - Graph Theory for Multi-Agent Integrationbarqawicloud
Graph theory is a well-known concept for algorithms and can be used to orchestrate the building of multi-model pipelines. By translating tasks and dependencies into a Directed Acyclic Graph, we can orchestrate diverse AI models, including NLP, vision, and recommendation capabilities. This tutorial provides a step-by-step approach to designing graph-based AI model pipelines, focusing on clinical use cases from the field.
Trends Artificial Intelligence - Mary MeekerClive Dickens
Mary Meeker’s 2024 AI report highlights a seismic shift in productivity, creativity, and business value driven by generative AI. She charts the rapid adoption of tools like ChatGPT and Midjourney, likening today’s moment to the dawn of the internet. The report emphasizes AI’s impact on knowledge work, software development, and personalized services—while also cautioning about data quality, ethical use, and the human-AI partnership. In short, Meeker sees AI as a transformative force accelerating innovation and redefining how we live and work.
Down the Rabbit Hole – Solving 5 Training RoadblocksRustici Software
Feeling stuck in the Matrix of your training technologies? You’re not alone. Managing your training catalog, wrangling LMSs and delivering content across different tools and audiences can feel like dodging digital bullets. At some point, you hit a fork in the road: Keep patching things up as issues pop up… or follow the rabbit hole to the root of the problems.
Good news, we’ve already been down that rabbit hole. Peter Overton and Cameron Gray of Rustici Software are here to share what we found. In this webinar, we’ll break down 5 training roadblocks in delivery and management and show you how they’re easier to fix than you might think.
Bridging the divide: A conversation on tariffs today in the book industry - T...BookNet Canada
A collaboration-focused conversation on the recently imposed US and Canadian tariffs where speakers shared insights into the current legislative landscape, ongoing advocacy efforts, and recommended next steps. This event was presented in partnership with the Book Industry Study Group.
Link to accompanying resource: https://bnctechforum.ca/sessions/bridging-the-divide-a-conversation-on-tariffs-today-in-the-book-industry/
Presented by BookNet Canada and the Book Industry Study Group on May 29, 2025 with support from the Department of Canadian Heritage.
Enabling BIM / GIS integrations with Other Systems with FMESafe Software
Jacobs has successfully utilized FME to tackle the complexities of integrating diverse data sources in a confidential $1 billion campus improvement project. The project aimed to create a comprehensive digital twin by merging Building Information Modeling (BIM) data, Construction Operations Building Information Exchange (COBie) data, and various other data sources into a unified Geographic Information System (GIS) platform. The challenge lay in the disparate nature of these data sources, which were siloed and incompatible with each other, hindering efficient data management and decision-making processes.
To address this, Jacobs leveraged FME to automate the extraction, transformation, and loading (ETL) of data between ArcGIS Indoors and IBM Maximo. This process ensured accurate transfer of maintainable asset and work order data, creating a comprehensive 2D and 3D representation of the campus for Facility Management. FME's server capabilities enabled real-time updates and synchronization between ArcGIS Indoors and Maximo, facilitating automatic updates of asset information and work orders. Additionally, Survey123 forms allowed field personnel to capture and submit data directly from their mobile devices, triggering FME workflows via webhooks for real-time data updates. This seamless integration has significantly enhanced data management, improved decision-making processes, and ensured data consistency across the project lifecycle.
מכונת קנטים המתאימה לנגריות קטנות או גדולות (כמכונת גיבוי).
מדביקה קנטים מגליל או פסים, עד עובי קנט – 3 מ"מ ועובי חומר עד 40 מ"מ. בקר ממוחשב המתריע על תקלות, ומנועים מאסיביים תעשייתיים כמו במכונות הגדולות.
How Advanced Environmental Detection Is Revolutionizing Oil & Gas Safety.pdfRejig Digital
Unlock the future of oil & gas safety with advanced environmental detection technologies that transform hazard monitoring and risk management. This presentation explores cutting-edge innovations that enhance workplace safety, protect critical assets, and ensure regulatory compliance in high-risk environments.
🔍 What You’ll Learn:
✅ How advanced sensors detect environmental threats in real-time for proactive hazard prevention
🔧 Integration of IoT and AI to enable rapid response and minimize incident impact
📡 Enhancing workforce protection through continuous monitoring and data-driven safety protocols
💡 Case studies highlighting successful deployment of environmental detection systems in oil & gas operations
Ideal for safety managers, operations leaders, and technology innovators in the oil & gas industry, this presentation offers practical insights and strategies to revolutionize safety standards and boost operational resilience.
👉 Learn more: https://www.rejigdigital.com/blog/continuous-monitoring-prevent-blowouts-well-control-issues/
Boosting MySQL with Vector Search -THE VECTOR SEARCH CONFERENCE 2025 .pdfAlkin Tezuysal
As the demand for vector databases and Generative AI continues to rise, integrating vector storage and search capabilities into traditional databases has become increasingly important. This session introduces the *MyVector Plugin*, a project that brings native vector storage and similarity search to MySQL. Unlike PostgreSQL, which offers interfaces for adding new data types and index methods, MySQL lacks such extensibility. However, by utilizing MySQL's server component plugin and UDF, the *MyVector Plugin* successfully adds a fully functional vector search feature within the existing MySQL + InnoDB infrastructure, eliminating the need for a separate vector database. The session explains the technical aspects of integrating vector support into MySQL, the challenges posed by its architecture, and real-world use cases that showcase the advantages of combining vector search with MySQL's robust features. Attendees will leave with practical insights on how to add vector search capabilities to their MySQL systems.
➡ 🌍📱👉COPY & PASTE LINK👉👉👉 ➤ ➤➤ https://drfiles.net/
Wondershare Filmora Crack is a user-friendly video editing software designed for both beginners and experienced users.
Interested in leveling up your JavaScript skills? Join us for our Introduction to TypeScript workshop.
Learn how TypeScript can improve your code with dynamic typing, better tooling, and cleaner architecture. Whether you're a beginner or have some experience with JavaScript, this session will give you a solid foundation in TypeScript and how to integrate it into your projects.
Workshop content:
- What is TypeScript?
- What is the problem with JavaScript?
- Why TypeScript is the solution
- Coding demo
Mastering AI Workflows with FME - Peak of Data & AI 2025Safe Software
Harness the full potential of AI with FME: From creating high-quality training data to optimizing models and utilizing results, FME supports every step of your AI workflow. Seamlessly integrate a wide range of models, including those for data enhancement, forecasting, image and object recognition, and large language models. Customize AI models to meet your exact needs with FME’s powerful tools for training, optimization, and seamless integration
מכונות CNC קידוח אנכיות הן הבחירה הנכונה והטובה ביותר לקידוח ארונות וארגזים לייצור רהיטים. החלק נוסע לאורך ציר ה-x באמצעות ציר דיגיטלי מדויק, ותפוס ע"י צבת מכנית, כך שאין צורך לבצע setup (התאמות) לגדלים שונים של חלקים.
Artificial Intelligence in the Nonprofit Boardroom.pdfOnBoard
OnBoard recently partnered with Microsoft Tech for Social Impact on the AI in the Nonprofit Boardroom Survey, an initiative designed to uncover the current and future role of artificial intelligence in nonprofit governance.
TrustArc Webinar - 2025 Global Privacy SurveyTrustArc
How does your privacy program compare to your peers? What challenges are privacy teams tackling and prioritizing in 2025?
In the sixth annual Global Privacy Benchmarks Survey, we asked global privacy professionals and business executives to share their perspectives on privacy inside and outside their organizations. The annual report provides a 360-degree view of various industries' priorities, attitudes, and trends. See how organizational priorities and strategic approaches to data security and privacy are evolving around the globe.
This webinar features an expert panel discussion and data-driven insights to help you navigate the shifting privacy landscape. Whether you are a privacy officer, legal professional, compliance specialist, or security expert, this session will provide actionable takeaways to strengthen your privacy strategy.
This webinar will review:
- The emerging trends in data protection, compliance, and risk
- The top challenges for privacy leaders, practitioners, and organizations in 2025
- The impact of evolving regulations and the crossroads with new technology, like AI
Predictions for the future of privacy in 2025 and beyond
Integration of Utility Data into 3D BIM Models Using a 3D Solids Modeling Wor...Safe Software
Jacobs has developed a 3D utility solids modelling workflow to improve the integration of utility data into 3D Building Information Modeling (BIM) environments. This workflow, a collaborative effort between the New Zealand Geospatial Team and the Australian Data Capture Team, employs FME to convert 2D utility data into detailed 3D representations, supporting enhanced spatial analysis and clash detection.
To enable the automation of this process, Jacobs has also developed a survey data standard that standardizes the capture of existing utilities. This standard ensures consistency in data collection, forming the foundation for the subsequent automated validation and modelling steps. The workflow begins with the acquisition of utility survey data, including attributes such as location, depth, diameter, and material of utility assets like pipes and manholes. This data is validated through a custom-built tool that ensures completeness and logical consistency, including checks for proper connectivity between network components. Following validation, the data is processed using an automated modelling tool to generate 3D solids from 2D geometric representations. These solids are then integrated into BIM models to facilitate compatibility with 3D workflows and enable detailed spatial analyses.
The workflow contributes to improved spatial understanding by visualizing the relationships between utilities and other infrastructure elements. The automation of validation and modeling processes ensures consistent and accurate outputs, minimizing errors and increasing workflow efficiency.
This methodology highlights the application of FME in addressing challenges associated with geospatial data transformation and demonstrates its utility in enhancing data integration within BIM frameworks. By enabling accurate 3D representation of utility networks, the workflow supports improved design collaboration and decision-making in complex infrastructure projects
Developing Schemas with FME and Excel - Peak of Data & AI 2025Safe Software
When working with other team members who may not know the Esri GIS platform or may not be database professionals; discussing schema development or changes can be difficult. I have been using Excel to help illustrate and discuss schema design/changes during meetings and it has proven a useful tool to help illustrate how a schema will be built. With just a few extra columns, that Excel file can be sent to FME to create new feature classes/tables. This presentation will go thru the steps needed to accomplish this task and provide some lessons learned and tips/tricks that I use to speed the process.
Developing Schemas with FME and Excel - Peak of Data & AI 2025Safe Software
O'Reilly SA NYC 2018: Complex event flows in distributed systems
1. Complex event flows in
distributed systems
@berndruecker With thoughts from http://flowing.io
@berndruecker | @martinschimak
2. 3 common hypotheses I check today:
# Events decrease coupling
# Orchestration needs to be avoided
# Workflow engines are painful
13. Temporal decoupling with events and read models
Checkout
Payment
Inventory
Shipment
Good
Stored
Read
Model
Good
Fetched
The button blinks if we can
ship within 24 hours
*Events are facts about what happened (in the past)
17. The danger is that it's very easy to make
nicely decoupled systems with event
notification, without realizing that you're
losing sight of that larger-scale flow, and
thus set yourself up for trouble in future
years.
https://martinfowler.com/articles/201701-event-driven.html
18. The danger is that it's very easy to make
nicely decoupled systems with event
notification, without realizing that you're
losing sight of that larger-scale flow, and
thus set yourself up for trouble in future
years.
https://martinfowler.com/articles/201701-event-driven.html
19. The danger is that it's very easy to make
nicely decoupled systems with event
notification, without realizing that you're
losing sight of that larger-scale flow, and
thus set yourself up for trouble in future
years.
https://martinfowler.com/articles/201701-event-driven.html
24. Order
Extract the end-to-end responsibility
Checkout
Payment
Inventory
Shipment
*Commands have an intent about
what needs to happen in the future
Order
placed
Payment
received
Retrieve
payment
35. Example
Order Payment
Client of dumb endpoints easily become a god services.
If the credit
card was
rejected, the
customer can
provide new
details
Credit
Card
Retrieve
Payment
Rejected
Rejected
36. Payment
failed
Who is responsible to deal with problems?
Order Payment
If the credit
card was
rejected, the
customer can
provide new
details
Credit
Card
Retrieve
Payment
Rejected
Payment
received
37. Payment
failed
Who is responsible to deal with problems?
Order Payment
Clients of smart endpoints remains lean.
If the credit
card was
rejected, the
customer can
provide new
details
Credit
Card
Retrieve
Payment
Rejected
Payment
received
Smart endpoints are
potentially long-running
46. We are having some technical
difficulties and cannot present you
your boarding pass right away.
But we do actively retry ourselves, so
lean back, relax and we will send it
on time.
52. Avoid the wrong tools!
Death by properties panel
Low-code is great!
(You can get rid
of your developers!)
Complex, proprietary, heavyweight, central, developer adverse, …
58. public static void main(String[] args) {
ProcessEngine engine = new StandaloneInMemProcessEngineConfiguration()
.buildProcessEngine();
engine.getRepositoryService().createDeployment() //
.addModelInstance("flow.bpmn", Bpmn.createExecutableProcess("flow") //
.startEvent()
.serviceTask("Step1").camundaClass(SysoutDelegate.class)
.serviceTask("Step2").camundaClass(SysoutDelegate.class)
.endEvent()
.done()
).deploy();
engine.getRuntimeService().startProcessInstanceByKey(
"flow", Variables.putValue("city", "New York"));
}
public class SysoutDelegate implements JavaDelegate {
public void execute(DelegateExecution execution) throws Exception {
System.out.println("Hello " + execution.getVariable("city"));
}
}
What do I mean by
„leightweight?“
59. public static void main(String[] args) {
ProcessEngine engine = new StandaloneInMemProcessEngineConfiguration()
.buildProcessEngine();
engine.getRepositoryService().createDeployment() //
.addModelInstance("flow.bpmn", Bpmn.createExecutableProcess("flow") //
.startEvent()
.serviceTask("Step1").camundaClass(SysoutDelegate.class)
.serviceTask("Step2").camundaClass(SysoutDelegate.class)
.endEvent()
.done()
).deploy();
engine.getRuntimeService().startProcessInstanceByKey(
"flow", Variables.putValue("city", "New York"));
}
public class SysoutDelegate implements JavaDelegate {
public void execute(DelegateExecution execution) throws Exception {
System.out.println("Hello " + execution.getVariable("city"));
}
}
Build engine
in one line of
code
(using in-
memory H2)
60. public static void main(String[] args) {
ProcessEngine engine = new StandaloneInMemProcessEngineConfiguration()
.buildProcessEngine();
engine.getRepositoryService().createDeployment() //
.addModelInstance("flow.bpmn", Bpmn.createExecutableProcess("flow")
.startEvent()
.serviceTask("Step1").camundaClass(SysoutDelegate.class)
.serviceTask("Step2").camundaClass(SysoutDelegate.class)
.endEvent()
.done()
).deploy();
engine.getRuntimeService().startProcessInstanceByKey(
"flow", Variables.putValue("city", "New York"));
}
public class SysoutDelegate implements JavaDelegate {
public void execute(DelegateExecution execution) throws Exception {
System.out.println("Hello " + execution.getVariable("city"));
}
}
Define flow
e.g. in Java
DSL
61. public static void main(String[] args) {
ProcessEngine engine = new StandaloneInMemProcessEngineConfiguration()
.buildProcessEngine();
engine.getRepositoryService().createDeployment() //
.addModelInstance("flow.bpmn", Bpmn.createExecutableProcess("flow")
.startEvent()
.serviceTask("Step1").camundaClass(SysoutDelegate.class)
.serviceTask("Step2").camundaClass(SysoutDelegate.class)
.endEvent()
.done()
).deploy();
engine.getRuntimeService().startProcessInstanceByKey(
"flow", Variables.putValue("city", "New York"));
}
public class SysoutDelegate implements JavaDelegate {
public void execute(DelegateExecution execution) throws Exception {
System.out.println("Hello " + execution.getVariable("city"));
}
}
Define flow
e.g. in Java
DSL
87. Lightweight workflow engines are
great – don‘t DIY*
*e.g. enabling potentially long-running services, solving hard
developer problems, can run decentralized
90. Code example & live demo
InventoryPaymentOrder ShippingCheckout Monitor
https://github.com/flowing/flowing-retail/
Human
Tasks
H2 H2
91. # Events decrease coupling: sometimes
read-models, but no complex peer-to-peer event chains!
# Orchestration needs to be avoided: sometimes
no ESB, smart endpoints/dumb pipes, important capabilities need a home
# Workflow engines are painful: some of them
lightweight engines are easy to use and can run decentralized,
they solve hard developer problems, don‘t DIY