Chapter 9. Workflow Engines and Integration Challenges

Modern systems are typically designed in such a way that components are located on different computers, virtual machines, or containers. Connecting these components requires remote communication, which introduces a lot of new challenges.

This chapter will describe how workflow engines can be applied to some of these challenges. In this context, it:

  • Examines communication patterns for service invocations, specifically looking at long-running and asynchronous communication

  • Explores consistency problems and transactional guarantees

  • Emphasizes the importance of idempotency to make all of this work

Even if you don’t plan to use a microservices architecture, reading this chapter will still be valuable, as almost every system has some remote calls somewhere. The concepts described here apply even if it’s just one simple REST call.

Communication Patterns for Service Invocation

There are different possible communication patterns when you invoke services from your process. Let’s first have a look at synchronous communication before we dive into asynchronous communication.

Synchronous Request/Response

The typical example of synchronous request/response is a REST call. In order to invoke such a REST call in a BPMN process model, you leverage a service task, as introduced in “Business Process Model and Notation (BPMN)” in Chapter 3. The process will wait in this service task until the REST call returns a response as indicated ...

Get Practical Process Automation now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.