In today’s IT architectures, microservices and serverless functions play an increasingly important role. But how can you create meaningful, comprehensive, and connected business solutions if the individual components are decoupled and independent by design? This book provides a framework through examples and practical advice, and reveals how you can design complex processes in such an environment to deliver true business value.
Therefore, this book dives into a developer-friendly view on process automation and explains how process automation can be applied in modern system architectures and software development practices.
It focuses on lightweight workflow engines as the core component to make this happen, which should be part of every developers tool belt.
The book also discusses typical misconceptions around process automation and orchestration.
Why You Should Read This Book #
- Digital transformation is happening everywhere and automation a must.
- Many processes are tailor-made to an organization’s needs, as this allows to differentiate from competition. Therefore they cannot be addresses by off-the-shelf application software.
- Automating these processes is complex and requires software engineering, but with specific characteristics and requirements.
- You will need a developer-friendly way to automate processes, leveraging lightweight workflow engine technology. This is exactly what this book explains to you.
Who This Book is For #
This book targets software developers, software engineers and software or system architects that want to learn about process automation.
If you are a software developer, you might want to use a workflow engine within your application, service or microservice to solve hands-on problems. This book will help you understand which problems a workflow engines solves for you, and how you 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 if a workflow engine should be operated centrally or not.
But you can also benefit, if you work in another role:
If you are an IT manager, the book can also help you to 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 a bit out-of-the-box and understand the technical side of things.
You will only need some general experience in the field of software engineering, but no other specific knowledge.
Table Of Contents #
Preface Many Ways to Automate Processes The Scope Of This Book Who This Book is For The Architect Always Implements Accompanying Website and Code Examples 1. Introduction Process Automation Wild West Integrations Workflow Engines And Executable Process Models A Business Scenario Long-Running Processes Business Processes, Integration Processes and Workflows Business-IT Collaboration Business Drivers and the Value of Process Automation Not Your Parents’ Process Automation Tools Conclusion Part I: Fundamentals 2. Workflow Engines and Process Solutions The Workflow Engine Core Capabilities Additional Features of Workflow Platforms Architecture A Process Solution Executable Example Applications, Processes, Workflow Engines Typical Workflow Tools in a Project’s Life Cycle Graphical Process Modeler Collaboration Tools Operations Tooling Tasklist Applications Business Monitoring and Reporting Conclusion 3. Developing Process Solutions Business Process Model and Notation (BPMN) Start and End Events The Token Concept: Implementing Control Flow Sequence Flows: Controlling the Flow of Execution Tasks: Units of Work Gateways: Steering Flow Events: Waiting for Something to Happen Message Events: Waiting for a Trigger from the Outside Combining Process Models and Programming Code Publish-Subscribe to a Process Referencing Code in Process Models Using Pre-Built Connectors Model or Code? Testing Processes Versioning of Process Solutions Conclusion 4. Orchestrate Anything Orchestrate Software Service Oriented Architecture (SOA) Services Microservices Serverless Functions Modular Monoliths Deconstructing the Monolith Orchestrate Decisions Decision Model And Notation (DMN) Decisions in a Process Model Orchestrate Humans Task Assignment Additional Tool Support The User Interface of User Tasks Orchestrate RPA (Robotic Process Automation) Bots Orchestrate Physical Devices and Things Conclusion 5. Championing Workflow Engines And BPMN Limitations of Other Implementation Options Hard-coded Processes Batch Processing Data Pipelines and Streaming Actor Model Stateful Functions Process Modeling Languages Workflow Patterns Benefits Of Graphical Process Visualizations Textual Process Modeling Approaches Typical Concerns About Graphical Modeling Graphical vs. Textual Approaches Process Automation With Blockchain? Conclusion Part II: Process Automation in the Enterprise 6. Solution Architecture When to Use a Workflow Engine Architecture Tradeoffs Running The Workflow Engine Decentralized Engines Sharing Engines Ownership of Process Models Using The Workflow Engine As Communication Channel In-House Workflow Platforms Performance And Scalability Developer Experience and Continuous Delivery Evaluating Your Workflow Engine Conclusion 7. Autonomy, Boundaries and Isolation Strong Cohesion And Low Coupling Domain Driven Design, Bounded Contexts and Services Boundaries And Business Processes Respect Boundaries and Avoid Process Monoliths Foster Your Understanding Of Responsibilities Long-Running Behavior Helps You to Defend Boundaries How Processes Communicate Across Boundaries Call Activities - Handy Shortcuts Only Within The Boundary Crossing Boundaries Is An API Call Decentralized Workflow Tooling Conclusion 8. Balancing Orchestration and Choreography Event-driven Systems Emergent Behavior Event Chains The Risk Of Distributed Monoliths Contrasting Orchestration and Choreography Introducing Commands Messages, Events and Commands Terminology and Definitions Avoiding Event Chains By Using Commands The Direction Of Dependency Finding The Right Balance Deciding About Using Commands or Events Mix Commands And Events Designing Responsibilities Evaluate Change Scenarios To Validate Decisions Debunking Common Myths Commands Do Not Require Synchronous Communication Orchestration Does Not Need To Be Central Choreography Does Not Automatically Lead To More Decoupling The Role of Workflow Engines Conclusion 9. Workflow Engines And Integration Challenges Communication Patterns For Service Invocation Synchronous Request-response Asynchronous Request-response BPMN and Being Ready-to-receive Aggregating Messages Poisoned and dead messages Synchronous Facades Hiding Asynchronous Communication Transactions and Consistency Eventual Consistency Business Strategies to Handle Inconsistency Saga Pattern and Compensation Chaining Resources by Using the Outbox Pattern Eventual Consistency Applies to Every Form of Remote Communication The Importance of Idempotency Conclusion 10. Business-IT Collaboration A Typical Project Including All The People: BizDevOps The Process Automation Lifecycle The Power of One Joined Model Who Does the Modeling? Creating Better Process Models Extract (Integration) Logic Into Subprocesses Distinguishing Between Results, Exceptions, and Errors Increasing Readability Conclusion 11. Process Visibility The Value Of Process Visibility Getting the Data Leverage Audit Data From Your Workflow Engine Model Events To Measure Key Performance Indicators (KPIs) Status Inquiries Understanding Processes That Span Multiple Systems Observability And Distributed Tracing Tools Custom Centralized Monitoring Data Warehouses, Data Lakes And Business Intelligence Tools Process Mining Process Event Monitoring Current Market Dynamics Setting Up Process Reporting And Monitoring Typical Metrics And Reports Allow For a Deeper Understanding Conclusion Part III: Get Going! 12. The Journey to Introduce Process Automation Understanding The Adoption Journey Failures You Want to Avoid A Success Story The Pattern of Successful Adoption Journeys Different Journeys For Different Scenarios Starting Your Journey Bottom-up vs Top-Down Adoption Motion Proof Of Concepts Presenting The Business Case Don’t Build Your Own Platform Do’s and Don’ts Around Reuse From Project to Program: Scaling Adoption Perception Management: What Is Process Automation? Establishing a Center of Excellence Managing Architecture Decisions Decentralized Workflow Tooling Roles And Skill Development Conclusion 13. Parting Words Current Architecture Trends Influence Process Automation Rethink Business Processes and User Experience Where To Go From Here
Weaving together ideas from microservices, event-driven systems, and Domain-Driven Design, this book describes when, why, and how to effectively leverage workflows within a modern software architecture. Taking a pragmatic practitioner’s approach, it uses real-world examples and explores the pros and cons of multiple alternative patterns in detail. It should be on every architect’s bookshelf.
Randy Shoup, VP Engineering and Chief Architect at eBay
Bernd has championed and delivered developer-friendly process automation tools for the best part of the last decade. Now, in this pragmatic new book, Bernd brings that wealth of experience to show how process automation models, methods, and tools can be applied to tame the complexity of microservices and cloud-native architectures which are becoming ever more prevalent in today’s technology landscape. I highly recommend this book for architects and developers who want to add process automation thinking to their design toolkit.
Richard Tarling, Digitization & Workflow Engineering Co-lead at Goldman Sachs
Process automation has often been viewed as the antithesis of modern, agile software development: snazzy “doodleware” demos that don’t scale to real use cases, poor testability, and version control only for the fortunate ones. No one better than Bernd to show us that this perception has little to do with workflow and process automation but merely with past implementations. Seeing process automation as an extension of well-established software development methods and architectures breathes a much welcome breeze of fresh air into the field.
Gregor Hohpe, author of Enterprise Integration Patterns and The Software Architect Elevator