Camunda is an open-source platform for process automation. Camunda 8 is based on a next generation high performance engine called Zeebe. The Camunda 8 Library includes business objects and user interface components to run processes on the Zeebe engine.
Zeebe Business Objects
The library includes a set of business objects that represent information in the Zeebe engine:
Process Definition
A Process Definition represents a version of a process definition deployed to the Zeebe engine. It has behaviors including:
- Deploy deploys a BPMN process definition to the Zeebe engine
- Start that creates a process instances with variables and optionally waits for and returns the first user task
- Start by Name uses a name instead of a process definition id to start a process instance
- Deploy on Start deploys BPMN files when the app starts
- Latest returns a list of the latest version of each process definition
Process Instance
A Process Instance represents an execution of a process definition in the Zeebe engine. It has behaviors including:
- Set Variables creates or updates process variables in the Zeebe engine
- Cancel cancels a running process instance
- Wait for User Task polls the process instance until a user task is available
Process Incident
A Process Incident represents an incident in the Zeebe engine. Zeebe creates incidents for things like failed service tasks and invalid expressions. It has a Resolve behavior that informs Zeebe that the incident has been addressed and it should be retried.
Task
A Task represents a single job in the Zeebe engine. It may be a user task or a service task. It has behaviors including:
- My Tasks returns the list of tasks that are assigned to the user or one of their roles
- Claim assigns an unassigned task to a user
- Set Variables sets variables on the task context
- Complete completes the job in the Zeebe engine
It also has logic to restrict who can access task business objects.
Process Variable
A Process Variable represents process variables associated to a process instance or task. It includes logic to update the associated process business object when Zeebe is ahead.
Task Assignment Business Objects
The Camunda 8 Library leverages the App User, Role and App User To Role business objects from the Loopback 4 Base Library. A task's assigned user is represented by a Task belongs to App User relationship. Candidate groups are represented by Task to Role linking objects.
Mixin Business Objects
The Camunda 8 Library includes three Business Object Mixins:
- Zeebe Object manages the synchronization between Elasticsearch and the app database
- Process Business Object adds properties and behaviors to the process business objects
- Emitter emits events for the Zeebe objects enabling notifications and realtime task lists
Task Management Components
The Camunda 8 Library includes user interface components that simplify building task management user experiences. Components include:
- My Tasks Page Content contains a simple task list
- Select and Start Process Button and Select and Start Process Dialog are used to start process instances and redirect the user to the first task
- Render Task With Camunda Form is used for tasks that have a Camunda Form instead of a User Task page
- Render Task With Angular Component is used for tasks that have an Angular Component instead of a User Task page
- Task Service includes centralized logic to handle tasks
User Task Components
The Camunda 8 Library includes user interface components that simplify building pages for user tasks. Components include:
- Task Breadcrumb displays the name of the task and a link back to the task list
- Complete Task Button is enabled when the fields are valid and completes the task when clicked
Process Administration Components
The Camunda 8 Library includes user interfaces components that simplify building process administration pages. Components include:
- Process Definitions Page Content displays the list of process definitions and allows for import of new process definitions
- Process Definition Page Content displays the metadata, diagram and XML for a process definition, buttons to start or download the process definition, and a list of process instances
- Process Instance Page Content displays the metadata, variables, tasks, children and incidents for a process instance and a button to cancel the process instance
- Task Page Content displays the metadata, process instance variables, and task variables for a task and includes a button to complete the task
- User Roles manages assignment of roles to users
- Query Elasticsearch Page Content is used to execute sql queries against Elasticsearch
The library also includes several other components that support these components.
App Behaviors
The Camunda 8 Library includes several App Behaviors:
- Add Camunda Admins adds the Camunda Administrator role to any users with the Administrator role
- Connect to Elasticsearch and Zeebe establishes the connection to Zeebe and Elasticsearch and initiates the synchronization process
- Query Elasticsearch executes a sql query against the Elasticsearch database
- Get Elasticsearch Document retrieves a specific document from Elasticsearch
- Disconnect disconnects from Zeebe and Elasticsearch when the app shuts down