{{announcement.body}}
{{announcement.title}}
Refcard #346

Microservices and Workflow Engines

Getting Started With Agile Business Process Automation

Automation of business processes enables organizations to better meet critical factors for success across industries today — from increased team agility and faster time-to-market to lower costs and improved customer service. However, many are hindered by the existing dependencies between their software, systems, and teams, making process automation and business efficiency all the more challenging to achieve and maintain.

This Refcard introduces a way to address such challenges using a microservice architectural style and a workflow engine for orchestration. You will learn key techniques in areas such as microservice design, communication, and state management, as well as first steps to take when getting started with business process automation.

Published: Feb. 18, 2021    |    Modified: Feb. 24, 2021
1,347
Free PDF for easy Reference

Brought to you by

Camunda
refcard cover

Written by

author avatar Amy Johnston Senior Product Marketing Manager, Camunda
asset cover
Refcard #346

Microservices and Workflow Engines

Getting Started With Agile Business Process Automation

Automation of business processes enables organizations to better meet critical factors for success across industries today — from increased team agility and faster time-to-market to lower costs and improved customer service. However, many are hindered by the existing dependencies between their software, systems, and teams, making process automation and business efficiency all the more challenging to achieve and maintain.

This Refcard introduces a way to address such challenges using a microservice architectural style and a workflow engine for orchestration. You will learn key techniques in areas such as microservice design, communication, and state management, as well as first steps to take when getting started with business process automation.

Published: Feb. 18, 2021    |    Modified: Feb. 24, 2021
1,347
Free PDF for easy Reference

Written by

author avatar Amy Johnston Senior Product Marketing Manager, Camunda

Brought to you by

Camunda
Table of Contents

Introduction

Automating Processes With Microservices and a Workflow Engine

Key Techniques for Microservice-Based Process Automation

Getting Started

Conclusion

Section 1

Introduction

Process automation is a vital part of digital transformation for organizations across industries. Automation enables them to respond to customer and market demand faster, while also helping to improve customer service, lower costs, and drive business growth. However, many organizations find that dependencies between teams, software, and systems make it hard to efficiently automate processes, slowing down time-to-market for new products, features, and functionality.

You can address this challenge using a microservice architectural style and a workflow engine for microservice orchestration. A microservice architecture splits a system into individual services, each focused on a single business capability. A workflow engine manages business processes that require state handling, monitoring, reporting, and other functionality.

In this Refcard, we’ll take a look at key techniques for well-designed microservices, important things to consider when implementing a microservice architecture, and what role a workflow engine plays within a microservice architecture.


This is a preview of the Microservices and Workflow Engines Refcard. To read the entire Refcard, please download the PDF from the link above.

Section 2

Automating Processes With Microservices and a Workflow Engine

When designing a microservice architecture, you define logical boundaries around meaningful business or domain capabilities. Within a service boundary, the development team has the autonomy to do whatever it takes to implement business and technical requirements. In this way, microservices provide a high level of flexibility and agility; each team can deliver changes at their own pace without having to rebuild and redeploy a monolithic business application every time.

It’s important to keep in mind that an end-to-end, automated business process typically stretches across multiple individual microservices that must communicate and collaborate to achieve a business outcome. That’s where a workflow engine comes in. A workflow engine manages the flow of a business process across microservices by visualizing, operating, and reporting on the process. Note that a workflow engine doesn’t necessarily have to be implemented as a single, central component. You can opt for multiple, decentralized workflow engines to further increase team independence.

Nearly all Kubernetes threat vectors can be mapped to one of these three categories. This Refcard uses them as a framework to describe key security concepts that comprehensively span Kubernetes infrastructure and applications.


This is a preview of the Microservices and Workflow Engines Refcard. To read the entire Refcard, please download the PDF from the link above.

Section 3

Key Techniques for Microservice-Based Process Automation

Design Independent Microservices

Independent microservices allow you to scale your development workforce while maintaining agility and a rapid development pace. Well-designed microservices have the following attributes:

Independent lifecycles
Teams must be able to develop, deploy, and make technology choices for their microservices without involving other services or teams. Starting, stopping, or changing a microservice should not interrupt other services.
Stable interfaces
Microservice interfaces must not break during updates. If incompatible changes to an interface are required, they should be implemented by versioning the interface.
Asynchronous communication
A microservice needs to communicate with other services, but the peer might not be available immediately. Asynchronous communication via messaging can remove dependencies on the availability of other services.
Resilience and fault tolerance
A microservice should still run if other services in the system cause problems.
Graceful degradation
If one microservice fails, the rest of the system should still function as best as possible (e.g., falling back to a default flow).
Independent scalability
Each microservice should have access to the resources needed to respond to changes in system load without impacting other services.
Local data storage
Each microservice should store a local copy of the data needed to fulfill its task.

Align Microservices to the Business Domain

Organizations often struggle to implement microservices that support an end-to-end business process while maintaining independence and preserving development team autonomy. For example, imagine that you have a fulfillment process for online orders of digital goods. It requires microservices such as payment, inventory, shipping, and so on. Although each service operates independently, the order fulfillment process requires a logical chain of events like the one shown in Figure 1.

Figure 1: Example of an order fulfillment process

In this scenario, an appropriate solution is to align a single order fulfillment microservice with the business need to fulfill digital orders. This microservice would be independent because it would coordinate all tasks required for an order: retrieving customer payments, fetching digital goods, and so on. This approach also preserves team autonomy because one team can develop, deploy, and redeploy the order fulfillment microservice on their own.


This is a preview of the Microservices and Workflow Engines Refcard. To read the entire Refcard, please download the PDF from the link above.

Section 4

Getting Started

Whether you’re working on a greenfield technology project or migrating away from legacy business applications, microservice-based process automation can help you scale your software development efforts and drive business growth. Here’s how to get started.

Identify Your Biggest Pain Points

Look for processes that cause the most problems for the business:

  • Which are the slowest?
  • Which require the most manual effort?
  • If some processes are already automated, which of those are the most brittle or the hardest to change?

These pain points indicate areas where replacing manual processes or legacy automation with a microservice will add the most immediate value for both technical and business stakeholders.

Align Boundaries to Business Processes

As you search for pain points, keep in mind that each microservice should be well aligned to your business requirements and goals. Don’t define boundaries between services based on organizational structure, technology choices, or the presence of technical debt. Taking the time to model your business processes will help you understand where service boundaries should lie.

Consider the Data Model

Instead of relying on a shared database as a single source of truth, allow state data to be distributed across microservices. This approach ensures that each microservice has the data it needs and will allow the system to scale in response to load.

Gradually Introduce Microservices

If you have monolithic business applications that must be replaced, a “big bang” approach is time-consuming and risky. Instead, focus on gradually replacing individual capabilities in each legacy application with microservices that fulfill the business need. Remember that as you build each microservice, it must respect the boundaries that you discovered when you modeled your business processes.


This is a preview of the Microservices and Workflow Engines Refcard. To read the entire Refcard, please download the PDF from the link above.

Section 5

Conclusion

Process automation is a critical concern for organizations seeking to deliver value to their customers faster, and one way to automate processes is to use a microservice architecture. In a microservice architecture, end-to-end business processes are distributed across services that operate independently and communicate with one another to accomplish business tasks. Microservices facilitate business agility by reducing dependencies between teams and systems so that new products, features, and functionality can be developed and rolled out as quickly and flexibly as possible.

Microservices come with some considerations — they must be:

  • Able to communicate with one another without being tightly coupled.
  • Aligned to the business domain in a way that preserves independence and team autonomy.
  • Designed to handle long-running business processes that require the state of process instances to be persisted over time.

A workflow engine addresses these considerations effectively because it can manage complex communication between services, persist the state of instances through extended processes, track time and handle timeouts, and compensate for failed or cancelled business transactions. A workflow engine also provides value-adding features such as graphical visualizations, status monitoring, and reporting.


This is a preview of the Microservices and Workflow Engines Refcard. To read the entire Refcard, please download the PDF from the link above.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}