Camunda

1. BPMN (Business Process Model and Notation)

  • Process Definition: A visual representation of the business process using BPMN 2.0. It defines the flow of tasks, events, and gateways.

  • Tasks: Different types of work units within a process (e.g., user tasks, service tasks).

  • Events: Something that happens during the process (e.g., start event, end event, intermediate events).

  • Gateways: Control the divergence and convergence of sequence flows (e.g., exclusive gateways, parallel gateways).

2. Process Engine

  • Deployment: The process of uploading BPMN diagrams and associated resources to the Camunda engine.

  • Process Instances: Runtime instances of a process definition.

  • Execution: Represents the token that traverses through the process model.

3. Task Management

  • User Tasks: Tasks that require human interaction.

  • Service Tasks: Automated tasks executed by the system (e.g., calling a REST API, executing business logic).

4. Forms

  • Used in user tasks to collect or display information to users.

  • Can be created using HTML, embedded forms, or external forms.

5. External Tasks

  • Tasks that are handled by external workers (e.g., microservices).

  • Useful for decoupling the process engine from the execution logic.

6. Event Handling

  • Message Events: Allow communication between different process instances or external systems.

  • Timer Events: Used to model delays or periodic actions.

  • Signal Events: Broadcast signals within the process engine to trigger actions.

7. Scripting and Delegates

  • Delegates: Java or Kotlin classes that implement the JavaDelegate or ExecutionListener interfaces to execute custom business logic.

  • Scripting: Use scripts (e.g., Groovy, JavaScript) within BPMN models for dynamic behavior.

8. Process Variables

  • Data that is used and manipulated throughout the process.

  • Can be of various types (e.g., string, integer, custom objects).

9. Camunda Modeler

  • A desktop application to create and edit BPMN process diagrams.

10. Camunda REST API

  • Allows interaction with the Camunda engine from external applications.

  • Useful for starting process instances, querying tasks, and completing tasks programmatically.

11. Camunda Cockpit

  • Web application for monitoring and managing process instances.

12. Camunda Tasklist

  • Web application for managing and completing user tasks.

Integrating Camunda with Kotlin

To integrate Camunda with Kotlin, you'll typically:

  1. Define BPMN Processes: Use Camunda Modeler to create BPMN diagrams.

  2. Deploy Processes: Deploy BPMN processes to the Camunda engine.

  3. Implement Business Logic: Use Kotlin to write delegate classes or external task workers.

  4. Configure Forms: Create forms for user tasks if needed.

  5. Monitor and Manage: Use Camunda Cockpit and Tasklist for process management.

Last updated