https://github.com/k1729p/study06
https://github.com/k1729p/study06
bpmn camunda dmn docker docker-compose drd java springboot yaml zeebe
Last synced: 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/k1729p/study06
- Owner: k1729p
- Created: 2025-03-28T10:36:20.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-03-28T10:49:23.000Z (about 1 year ago)
- Last Synced: 2025-06-10T16:42:02.946Z (about 1 year ago)
- Topics: bpmn, camunda, dmn, docker, docker-compose, drd, java, springboot, yaml, zeebe
- Language: Java
- Size: 4.37 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: docs/README.html
Awesome Lists containing this project
README
Study06 README Contents
Research the Camunda Platform
The sections of this project:
Java source code. Packages:

application sources :
kp
test sources :
kp.decisions

Java API Documentation ●
Java Test API Documentation
❶ Docker Build
Action:

1. With batch file
"01 Docker create Camunda.bat" create Camunda in Docker.
1.1. The Camunda in Docker is created with Docker configuration
docker-compose.yaml.

The screenshot of the created Docker containers.
❷ Models
Action:

1. In "Camunda Modeler" open

business-process-diagram-01.bpmn and
decision-requirements-diagram-01.dmn
2. In "Camunda Modeler" deploy
business-process-diagram-01.bpmn to local Docker 'http://localhost:26500'.
2.1. The business process model and the decision model were created with Camunda Modeler.
This modeler was downloaded and locally installed.
The
screenshot of the deployment dialog in "Camunda Modeler".
2.2. The business process diagram file
business-process-diagram-01.bpmn.

The business process diagram in "Camunda Modeler".
2.3. The decision requirements diagram file
decision-requirements-diagram-01.dmn.
From 'impact' and 'urgency' it is computed 'priority'.

The decision requirements diagram in "Camunda Modeler".
2.4. Priority Matrix
impact
highmediumlow
urgency high
1008040
urgency medium
705020
urgency low
30100
2.5. Condition Matrix
Flow From Service TaskFlow To Service Task
Flow TypeCondition Expression
TriageHigh Priority
Sequence Flowpriority >= 80
TriageMedium Priority
Sequence Flowpriority > 20 and priority < 80
TriageLow Priority
Default Flow
❸ SpringBoot Application with Spring Zeebe Client
Action:

1. With batch file
"02 MVN clean install run.bat" run the SpringBoot application with the enabled Zeebe client.
❹ Workflow
Action:

1. Start workflow with batch file
"03 Zeebe start instances.bat".
4.1. The workflow results from the Zeebe CLI client.

Console log from the execution of the batch file "03 Zeebe start instances.bat".
4.2. The workflow results from the SpringBoot application.

Console log from the SpringBoot application.
4.3. The Zeebe workers are the components that subscribe to Zeebe to execute available jobs:
-
kp.workers.impl.TriageWorker -
kp.workers.impl.HighPriorityWorker -
kp.workers.impl.MediumPriorityWorker -
kp.workers.impl.LowPriorityWorker -
kp.workers.impl.ApproveWorker
4.4. Assigning the workers (SpringBoot components) to the service tasks (from the business process diagram).
Service task "Triage" has the task definition type "service-triage".
This type is set in method
kp.workers.impl.TriageWorker::handle on 'JobWorker' annotation.
In constructor
kp.workers.impl.TriageWorker is created 'DmnDecision' from parsed decision requirements diagram file
decision-requirements-diagram-01.dmn.
This 'DmnDecision' is evaluated in 'kp.workers.impl.TriageWorker::handle' method.
Service task "High Priority" has the task definition type "service-priority-high".
This type is set in method
kp.workers.impl.HighPriorityWorker::handle on 'JobWorker' annotation.
Service task "Medium Priority" has the task definition type "service-priority-medium".
This type is set in method
kp.workers.impl.MediumPriorityWorker::handle on 'JobWorker' annotation.
Service task "Low Priority" has the task definition type "service-priority-low".
This type is set in method
kp.workers.impl.LowPriorityWorker::handle on 'JobWorker' annotation.
Service task "Approve" has the task definition type "service-approve".
This type is set in method
kp.workers.impl.ApproveWorker::handle on 'JobWorker' annotation.
This worker sets unconditionally the value "approved".
4.5. The workflow results in "Camunda Operate" on Docker http://localhost:8088/.
The login to "Camunda Operate": username 'demo', password 'demo'.
The
screenshot of all three process instances.
The
screenshot of the process instance triaged to high priority.
The
screenshot of the process instance triaged to medium priority.
The
screenshot of the process instance triaged to low priority.
Process Optimization
There is a possibility to install "Camunda Optimize" with an alternative docker configuration
docker-compose.yaml.
The
screenshot of the optimization heat map for the "Defect's Triage Process".
Dictionary
Camunda Platformworkflow and decision automation platform
Camundaprocess orchestrator
Zeebeworkflow engine for microservices orchestration
BPMNBusiness Process Model and Notation
DMNDecision Model and Notation
DRDDecision Requirements Diagram
COTSCommercial Off-The-Shelf Software
RPARobotic Process Automation