Overview
The Camunda Best Practices distill our experience with BPMN and DMN on the Camunda toolstack, incorporating insights from consulting, community feedback, and various interactions. They offer a blend of conceptual and practical guidance, representing our current practical project experience in a generalized context. While not definitive, these practices acknowledge that learning is ongoing and effectiveness may vary based on your specific situation.
Please note that, like the core product, Camunda extends the same guarantee to Best Practices. However, we cannot ensure the absolute accuracy or timeliness of the information provided, and any liability for damages resulting from the application of these recommendations is disclaimed.
In general, best practices apply to Camunda 8, but there are also some specific Camunda 7 practices in their own section below.
Project management Best Practices
📄️ The Customer Success Path
Follow certain steps and Best Practices when evaluating and introducing process automation to help make it a success.
📄️ Proper POC Execution
When evaluating your process automation approach, a POC helps check if the method and technology suit your needs.
Architecture Best Practices
📄️ Choosing Your Tech Stack
This best practice targets Camunda 8. For Camunda 7, please refer to Deciding about your Camunda 7 stack.
📄️ Environment Sizing
Define and size your environment for Camunda 8 appropriately by understanding the factors that influence hardware requirements.
📄️ Human Task Management
Use Camunda task management features or implement your requirements in a generic way for readable models.
Development Best Practices
📄️ Workflow Engine Integration
To sketch the basic architecture of your solution, learn how to connect the Zeebe workflow engine with your application or remote system.
📄️ Service Integration Patterns
When integrating systems and services, you can choose between various modeling possibilities in BPMN.
📄️ Writing Effective Workers
Service tasks within Camunda 8 require you to set a task type and implement job workers who perform whatever needs to be performed.
📄️ Problems and Exceptions
Take a closer look at understanding workers, handling exceptions on a technical level, leveraging retries, using incidents, and more.
📄️ Data Handling in Processes
When using Camunda, you have access to a dynamic map of process variables, which lets you associate data to every single process instance.
📄️ Routing Events to Processes
To start a new process instance or to route a message to a running instance, choose the appropriate technology option to do so.
📄️ Testing Process Definitions
Test your executable BPMN processes as they are software. If possible, do automated unit tests with a fast in-memory workflow engine.
Modeling Best Practices
📄️ Readable Process Models
Create visual process models to better understand, discuss, and remember processes so models are easy to read and understand.
📄️ Naming BPMN Elements
Name all elements in your BPMN diagrams, like activities, events, and gateways, by focusing on the business perspective.
📄️ Technically Relevant IDs
For executable flows, properly name all relevant technical element IDs, like BPMN IDs, in your BPMN diagrams.
📄️ Model Beyond the Happy Path
Model the happy path before collecting problems and exceptions, prioritizing them, and introducing them incrementally.
📄️ Situation Patterns
Document patterns that share common characteristics and find a satisfying solution for modeling them.
📄️ Building Flexibility in BPMN
Sometimes we need ways to build flexibility into process models to deal with operational problems or to allow for humans to intervene.
📄️ Choosing DMN Hit Policy
Hit policies describe different ways (standardized by DMN) to evaluate the rules contained in a decision table.
Operations Best Practices
📄️ Versioning Process Definitions
For real-life applications, it's crucial to understand how Camunda deals with evolving process definitions by means of versioning.
📄️ Process Reporting
The Camunda engine automatically collects audit information about historical process or instances for users to leverage and generate relevant reports.
Camunda 7-specific Best Practices
📄️ Tech Stack Decisions
Camunda 7 is very flexible and can be hooked into the architecture of your choice, giving you a number of important decisions to make.
📄️ Environment Sizing
Size your environment for Camunda 7, including sufficient hardware and database space. This best practice targets Camunda 7.x only.
Development
📄️ Service Invocation
This best practice targets Camunda 7.x only! If you are using Camunda 8, visit connecting the workflow engine with your world.
📄️ Transaction Handling
Carefully study and fully understand the concepts of wait states (save points) acting as transaction boundaries for technical (ACID) transactions.
📄️ Testing process definitions in Camunda 7
Camunda 7 also has support for writing tests in Java. This section gives you an example, the basic ideas of test scopes, and testing in chunks valid with Camunda 7.
Operations
📄️ Operating Camunda 7
To successfully operate Camunda 7.x, you need to take into account operation requirements when modeling business processes.
📄️ Performance Tuning
Understand influencing aspects on performance and apply tuning strategies. For example, by configuring the job executor or applying external tasks.
📄️ Securing Camunda 7
Disallow unauthorized access by securing the Camunda 7.x before going live with your process applications.
Other
📄️ Extending Human Task Management
This best practice targets Camunda 7.x only and is an appendum to understanding human task management.