Practical Process Automation

Book description

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

Publisher resources

View/Submit Errata

Table of contents

  1. Preface
    1. Process Automation Tools and Techniques
    2. The Scope of This Book
    3. Who This Book Is For
    4. The Architect Always Implements
    5. Accompanying Website and Code Examples
    6. Feedback
    7. How to Read This Book
    8. Conventions Used in This Book
    9. O’Reilly Online Learning
    10. How to Contact Us
    11. Acknowledgments
  2. 1. Introduction
    1. Process Automation
    2. Wild West Integrations
    3. Workflow Engines and Executable Process Models
    4. A Business Scenario
    5. Long-Running Processes
    6. Business Processes, Integration Processes, and Workflows
    7. Business–IT Collaboration
    8. Business Drivers and the Value of Process Automation
    9. Not Your Parents’ Process Automation Tools
      1. A Brief History of Process Automation
      2. The Story of Camunda
    10. Conclusion
  3. I. Fundamentals
  4. 2. Workflow Engines and Process Solutions
    1. The Workflow Engine
      1. Core Capabilities
      2. Additional Features of Workflow Platforms
      3. Architecture
    2. A Process Solution
    3. An Executable Example
    4. Applications, Processes, and Workflow Engines
    5. Typical Workflow Tools in a Project’s Life Cycle
      1. Graphical Process Modeler
      2. Collaboration Tools
      3. Operations Tooling
      4. Tasklist Applications
      5. Business Monitoring and Reporting
    6. Conclusion
  5. 3. Developing Process Solutions
    1. Business Process Model and Notation (BPMN)
      1. Start and End Events
      2. The Token Concept: Implementing Control Flow
      3. Sequence Flows: Controlling the Flow of Execution
      4. Tasks: Units of Work
      5. Gateways: Steering Flow
      6. Events: Waiting for Something to Happen
      7. Message Events: Waiting for a Trigger from the Outside
    2. Combining Process Models and Programming Code
      1. Publish/Subscribe to a Process
      2. Referencing Code in Process Models
      3. Using Prebuilt Connectors
      4. Model or Code?
    3. Testing Processes
    4. Versioning of Process Solutions
      1. Running Versions in Parallel
    5. Conclusion
  6. 4. Orchestrate Anything
    1. Orchestrate Software
      1. Service-Oriented Architecture (SOA) Services
      2. Microservices
      3. Serverless Functions
      4. Modular Monoliths
      5. Deconstructing the Monolith
    2. Orchestrate Decisions
      1. Decision Model and Notation (DMN)
      2. Decisions in a Process Model
    3. Orchestrate Humans
      1. Task Assignment
      2. Additional Tool Support
      3. The User Interface of User Tasks
    4. Orchestrate RPA Bots
    5. Orchestrate Physical Devices and Things
    6. Conclusion
  7. 5. Championing Workflow Engines and BPMN
    1. Limitations of Other Implementation Options
      1. Hardcoded Processes
      2. Batch Processing
      3. Data Pipelines and Streaming
      4. The Actor Model
      5. Stateful Functions
    2. Process Modeling Languages
      1. Workflow Patterns
      2. Benefits of Graphical Process Visualizations
      3. Textual Process Modeling Approaches
      4. Typical Concerns About Graphical Modeling
      5. Graphical Versus Textual Approaches
    3. Process Automation with Blockchain?
    4. Conclusion
  8. II. Process Automation in the Enterprise
  9. 6. Solution Architecture
    1. When to Use a Workflow Engine
    2. Architecture Trade-Offs
      1. Running the Workflow Engine
      2. Decentralized Engines
      3. Sharing Engines
      4. Ownership of Process Models
      5. Using the Workflow Engine as a Communication Channel
      6. In-House Workflow Platforms
      7. Performance and Scalability
      8. Developer Experience and Continuous Delivery
    3. Evaluating Workflow Engines
    4. Conclusion
  10. 7. Autonomy, Boundaries, and Isolation
    1. Strong Cohesion and Low Coupling
    2. Domain-Driven Design, Bounded Contexts, and Services
    3. Boundaries and Business Processes
      1. Respect Boundaries and Avoid Process Monoliths
      2. Foster Your Understanding of Responsibilities
      3. Long-Running Behavior Helps You Defend Boundaries
    4. How Processes Communicate Across Boundaries
      1. Call Activities: Handy Shortcuts Only Within the Boundary
      2. Crossing Boundaries Is an API Call
    5. Decentralized Workflow Tooling
    6. Conclusion
  11. 8. Balancing Orchestration and Choreography
    1. Event-Driven Systems
      1. Emergent Behavior
      2. Event Chains
      3. The Risk of Distributed Monoliths
    2. Contrasting Orchestration and Choreography
      1. Introducing Commands
      2. Messages, Events, and Commands
      3. Terminology and Definitions
      4. Avoiding Event Chains by Using Commands
      5. The Direction of Dependency
    3. Finding the Right Balance
      1. Deciding Whether to Use Commands or Events
      2. Mixing Commands and Events
      3. Designing Responsibilities
      4. Evaluating Change Scenarios to Validate Decisions
    4. Debunking Common Myths
      1. Commands Do Not Require Synchronous Communication
      2. Orchestration Does Not Need to Be Central
      3. Choreography Does Not Automatically Lead to More Decoupling
    5. The Role of Workflow Engines
    6. Conclusion
  12. 9. Workflow Engines and Integration Challenges
    1. Communication Patterns for Service Invocation
      1. Synchronous Request/Response
      2. Asynchronous Request/Response
      3. BPMN and Being Ready to Receive
      4. Aggregating Messages
      5. Poisoned and Dead Messages
      6. Synchronous Facades Hiding Asynchronous Communication
    2. Transactions and Consistency
      1. Eventual Consistency
      2. Business Strategies to Handle Inconsistency
      3. The Saga Pattern and Compensation
      4. Chaining Resources by Using the Outbox Pattern
    3. Eventual Consistency Applies to Every Form of Remote Communication
    4. The Importance of Idempotency
    5. Conclusion
  13. 10. Business–IT Collaboration
    1. A Typical Project
      1. The Moral of the Story
    2. Including All the People: BizDevOps
      1. Development
      2. Business
      3. Operations
    3. The Power of One Joined Model
      1. From a Process Pyramid to a House
    4. Who Does the Modeling?
    5. Creating Better Process Models
      1. Extracting (Integration) Logic into Subprocesses
      2. Distinguishing Between Results, Exceptions, and Errors
      3. Increasing Readability
    6. Conclusion
  14. 11. Process Visibility
    1. The Value of Process Visibility
    2. Getting the Data
      1. Leverage Audit Data from Your Workflow Engine
      2. Model Events to Measure Key Performance Indicators
    3. Status Inquiries
    4. Understanding Processes That Span Multiple Systems
      1. Observability and Distributed Tracing Tools
      2. Custom Centralized Monitoring
      3. Data Warehouses, Data Lakes, and Business Intelligence Tools
      4. Process Mining
      5. Process Event Monitoring
      6. Current Market Dynamics
    5. Setting Up Process Reporting and Monitoring
      1. Typical Metrics and Reports
      2. Allowing for a Deeper Understanding
    6. Conclusion
  15. III. Get Going!
  16. 12. The Journey to Introduce Process Automation
    1. Understanding the Adoption Journey
      1. Failures You Want to Avoid
      2. A Success Story
      3. The Pattern of Successful Adoption Journeys
      4. Different Journeys for Different Scenarios
    2. Starting Your Journey
      1. Bottom-up Versus Top-down Adoption
      2. Proofs of Concepts
      3. Presenting the Business Case
      4. Don’t Build Your Own Platform
      5. Dos and Don’ts Around Reuse
    3. From Project to Program: Scaling Adoption
      1. Perception Management: What Is Process Automation?
      2. Establishing a Center of Excellence
      3. Managing Architecture Decisions
      4. Decentralized Workflow Tooling
      5. Roles and Skill Development
    4. Conclusion
  17. 13. Parting Words
    1. Current Architecture Trends Influence Process Automation
    2. Rethinking Business Processes and the User Experience
    3. Where to Go from Here
  18. Index

Product information

  • Title: Practical Process Automation
  • Author(s): Bernd Ruecker
  • Release date: March 2021
  • Publisher(s): O'Reilly Media, Inc.
  • ISBN: 9781492061458