Goal of this example is to try features available by Camunda workflow and Zeebe automation processing framework with Dapr to make coding as much as independent as possible.
Expecting a sad person having difficulties learning a new language and it would make her happier if someone greets her. But depending on her learning skills (Score Person Learning Curve) she may desire the greeting or not. If her score is more than 30% she receives greeting by email. If less, it generates a business error and sends email to administrator. Yes, cruel world.
Request greeting and watch processing to the end.
- Install Dapr on local machine
- Run start-all.ps1 in deploy/docker directory.
When finished run stop-all.ps1 in deploy/docker directory.
- Install Dapr to Kubernetes either with CLI or Helm charts
- Run start-all.ps in deploy/k8s directory.
When finished run stop-all.ps1 in deploy/k8s directory.
-
Navigate to MailDev to see testing emails coming
-
Navigate to Camunda cloud self hosted
user: demo
password: demo -
Install and use Camunda Modeler (https://downloads.camunda.cloud/release/camunda-modeler/5.4.2/) to see BPMN diagram and DMN diagram and deploy both to Zeebe engine self-hosted. There is also a playground to test DMN workflows.
-
Ensure all containers are running. Start simulator in /src/sim folder as
dotnet run
to process all messages ordotnet run 10
to process just 10 messages. It's always good to start small first.
Timezone doesn't work correctly on Mac/Windows in Camunda containers. It's left unresolved for now.
Throwing business error does not send the ErrorMessage to Camunda engine or at least it's not accessible in "Send email to admin" task. Hence setting the property explicitly - feels a bit akward to me.
Whatever I define in Input field is a string. Even though I'd expect it's Time as on. Then using it in DMN diagram is impossible (or don't know how) as it always ends with error comparing ValString and ValTime.