Back in March, I conducted the webinar: “Monitoring & Orchestrating Your Microservices Landscape using Workflow Automation”. You can find the recording of the webinar online, as well as the slides. Not only was I overwhelmed by the number of attendees, but we also got a huge list of interesting questions before and, especially, during the webinar. I was able to answer some of these, but ran out of time to answer them all.
So I want to answer all open questions in this series of seven blog posts covering:
We’ve also started to experiment with the Camunda’s Question Corner - an open opportunity to put your questions to Camunda experts in an interactive and fun online webinar - so keep an eye on the Camunda Forum for more details.
Q: How to present BPMN diagrams so that common people can understand it?
There is no simple answer to that. But in my experience most people can understand a basic subset of BPMN easily. For our Real-Life BPMN book, we created a chart showing the elements we see used most often in automation-related projects:
BPMN symbols grouped by the frequency they are used from Real-Life BPMN
You can typically express a lot with the subset of “Always” or “Frequently”. And these symbols are intuitive — at least with a bit of training or explanation on the go.But comprehensible models should also comply with certain best practices — you can find one example in Create Readable Process Models.
Last but not least, it is important to not model every implementation aspect in BPMN. Remember, that a workflow solution is BPMN AND programming code, so you can choose what to express in the BPMN model and what you express in the programming language of your choice (I wrote a whole section about this in my upcoming book, but the super-condensed rule of thumb is: default → Programming, activities where you have to wait → BPMN, activities that should be visible → BPMN).
Q: Does the Camunda Process Engine in its open-source version support the entire and complete BPMN 2.0 descriptive symbol set?
There is no difference in BPMN symbol support of the Camunda community and enterprise edition.
Camunda supports almost all symbols. We never missed something in recent real-life projects. You can find the exact coverage in the documentation (this overview does make the gaps transparent).
Q: Why do you name events and functions in the BPMN model in the same style? Why not e.g. receive payment for a function? It is not fully textbook to model events as activities?
This question might relate to this workflow model I created in the webinar when I talked about that Camunda Optimize can do monitoring on pure events flowing around (even in scenarios where you do not use any workflow engine):
And there are indeed two flaws with this model — well spotted! First of all, it violates our typical naming convention, whereas every task is named with “object verb”, meaning that would result in:
While this is indeed better named, it has the downside that the exact event names are no longer shown. If you want to keep the event names from your application, we could model:
I do agree that this might be the most accurate way of modeling this situation. But in this case, I decided on tasks instead of events for two reasons:
This might be more intuitive for business people when they look at the workflow model. Doing the payment will take a bit of time, so events are confusing to some people.
I often give this kind of demo to people that do not (yet) know BPMN, and they also seem to understand boxes and arrows quicker. Especially as I typically also show timer boundary events in the same talk, I don’t want to introduce too many different modeling alternatives at once.
As this workflow model is “only” used in Optimize to project events onto, you have a bit of freedom anyway. So in this example, it might even be a good idea to model:
There is no right or wrong modeling here, at least, to my gut feeling. But I do agree that the model I did in the heat of the moment might not be the best choice to do in a real-life scenario.
Q: In the orchestration scenario, BPMN usage appears to be more or less limited to post-run analysis?
In the orchestration scenario, I used the Camunda engine within the order fulfillment microservice. Why do I do this — what is the value?
The workflow engine can wait, e.g. until a response or event happens — potentially much later. I can also leverage timer events to react if something takes too long.
I can use the operations tool to see what is currently going on. This gets especially interesting if something failed or is stuck (which I did not simulate in the webinar).
Of course you can use the audit data from the workflow engine to do further post-run analysis, but I did not dive into that in the webinar.
Q: Are you going to continue to work on CMMN?
At Camunda we are in maintenance mode with CMMN. We do support the existing features and fix every possible bug around it. But we do not actively develop it further. I want to quote a paragraph from the latest edition of our Real-Life BPMN, where we explained the reasons:
We gave CMMN two years to take off, but, within that time, we experienced limited value from CMMN in our projects, especially if you compare it to BPMN or DMN. One observation was, for example, that most logic in CMMN models was hidden in complex rule-sets if certain activities are possible, impossible, mandatory or unnecessary. These rules were often expressed elsewhere and also not represented graphically. Exaggerating a bit, the CMMN model becomes kind of a graphical bullet point list. So we decided to remove CMMN from this book to not confuse anybody that just embarks on their BPM journey. Instead we want to emphasize how to tackle unstructured processes with BPMN in section 4.5.5 on page 142 and point out the limits of this approach.
You can learn more about that decision in the webinar for the 4th edition.
Q: Would it be possible to integrate a testing module to help users see the result of newly created DMN before deploying it to production?
Yes, that is possible. It is not part of Camunda BPM out-of-the-box, at least not at this moment. But I saw customers doing some own-tooling around ours, leveraging the lean DMN engine itself and dmn.js for the UI part.
A great example is from LV1871, an insurance company in Germany. You can read about it in this blog post, the whole tooling is open source!
A bespoke DMN manager example from LV1871, which is available open-source.
Ready for more?
Next time we’ll look at architecture-related questions - there were 12 of these overall, the largest of all the categories I created when compiling answers in these blogs.