In today's IT architectures, microservices and serverless functions play increasingly important roles in process automation. But how do you create meaningful, comprehensive, and connected business solutions when the individual components are decoupled and independent by design? Targeted at developers and architects, this book presents a framework through examples, practical advice, and use cases to help you design and automate complex processes. As systems are more distributed, asynchronous, and reactive, process automation requires state handling to deal with long-running interactions. Author Bernd Ruecker demonstrates how to leverage process automation technology like workflow engines to orchestrate software, humans, decisions, or bots. Learn how modern process automation compares to business process management, service-oriented architecture, batch processing, event streaming, and data pipeline solutions Understand how to use workflow engines and executable process models with BPMN Understand the difference between orchestration and choreography and how to balance both. Who This Book Is ForThis book targets software developers and software or system architects who want to learn about process automation. If you are a software developer, you might want to use a workflow engine in your application, service, or microservice to solve hands-on problems. This book will help you understand which problems a workflow engine can solve for you, and how to get started. If you are a system architect, this book will help you understand opportunities and pitfalls around process automation. It will guide you through some tough architectural decisions and trade-offs, including how using a workflow engine compares to alternative approaches or whether a workflow engine should be operated centrally.But you can also benefit if you work in other roles. For example:- If you are an IT manager, this book can help you make better-informed decisions and ask the right questions internally.- If you are a business analyst, this book can help you if you are motivated to think outside the box and understand the technical side of things.Overall, you will need some general experience in the field of software engineering, but no other specific knowledge.