Skip to content

This demo was developed as support of the talk "Gain more freedom when migrating from Camunda 7 to 8"

License

Notifications You must be signed in to change notification settings

vanillabp/simple-vanillabp-demo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

VanillaBP

Demo

This demo was developed as support of the talk "Gain more freedom when migrating from Camunda Platform 7 to 8". This talk is about introducing VanillaBP which is an independent API for business processing engines. Additionally, it shows how migrations from Camunda Platform 7 to Camunda Platform 8 work without changing the code.

The process is quite simple and covers only a couple but representative situations one will face developing business processing applications:

demo.bpmn

If you are interested in a more elaborated example then checkout the Taxi Ride Blueprint.

Scenarios

Using Camunda Platform 7

To run the demo using Camunda Platform 7 use these commands:

mvn clean package -Pcamunda7
java -DworkerId=test -Dspring.profiles.active=camunda7 -jar target/demo-0.0.1-SNAPSHOT.jar

workerId system-property: For details see https://github.com/vanillabp/spring-boot-support#worker-id.

Using Camunda Platform 8

To run the demo using Camunda Platform 8 you have to start Zeebe first e.g. by using docker-compose.

Afterward use these commands:

mvn clean package -Pcamunda8
java -DworkerId=test -Dspring.profiles.active=camunda8 -jar target/demo-0.0.1-SNAPSHOT.jar

workerId system-property: For details see https://github.com/vanillabp/spring-boot-support#worker-id.

Migrating from Camunda Platform 7 to Camunda Platform 8

To test migration scenarios you have to start Zeebe first e.g. by using docker-compose.

Afterward use these commands:

mvn clean package -Pcamunda8,camunda7
java -DworkerId=test -Dvanillabp.default-adapter=XXXX -Dspring.profiles.active=camunda8,camunda7 -jar target/demo-0.0.1-SNAPSHOT.jar

The placeholder XXXX for the default-adapter has to be set according to the phase of migration:

  1. camunda7,camunda8: Prepare migration
  2. camunda8,camunda7: In migration

To test migration scenarios follow the instructions in section Usage.

For more details see documentation about migration.

Usage

The demo exposes a REST-API:

The given ID (in these samples 4 or 2) is used to determine the success attribute used by the process: Even numbers are treated as successful and odd number as not successful.

**) The task ID can be found in Camunda Cockpit webapp for Camunda Platform 7 or Camunda Tasklist webapp for Camunda Platform 8. The task id is also printed in the demo's log, but in case of Camunda 8 one has to add the prefix 0x since the logged task id is a hex-number in contrast to the task id found in Camunda 8 Tasklist.

Testing migration

Precondition: The demo application is built as shown in Scenarios section.

  1. Phase of preparation:
    1. Start the demo application using Spring Boot property -Dvanillabp.default-adapter=camunda7,camunda8 which makes VanillaBP aware of both targets, but workflows are still started using Camunda Platform 7.
    2. Start a workflow.
    3. Start a second workflow by triggering an event.
    4. Check cockpit for current status (use credentials admin/admin).
    5. Complete the user-task of one workflow to run into the receive-task. Trigger the event to proof workflow completes as expected.
  2. Phase of migration:
    1. Restart the demo application using Spring Boot property -Dvanillabp.default-adapter=camunda8,camunda7 forcing new workflows to be started using Camunda Platform 8 but still support those started using Camunda Platform 7.
    2. Start a workflow.
    3. Start a second workflow by triggering an event.
    4. Check operate for current status (use credentials demo/demo).
    5. Complete user task of old C7 workflow, makes it run into the receive-task.
    6. Trigger the event to complete the receive-task.
    7. Complete user task of new C8 workflow, makes it run into the receive-task.
    8. Trigger the event to complete the receive-task.

As you can see VanillaBP chooses the right adapter for each workflow. For more details see documentation about migration.

Noteworthy & Contributors

VanillaBP was developed by Phactum with the intention of giving back to the community as it has benefited the community in the past. Phactum

License

Copyright 2022 Phactum Softwareentwicklung GmbH

Licensed under the Apache License, Version 2.0

About

This demo was developed as support of the talk "Gain more freedom when migrating from Camunda 7 to 8"

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages