Few days ago I had a job interview and the company thinks, that my mindset would fit in their need. They invited me to round two, where they want to check my skillset with an easy exercise. There are different views of easy, especially when you become reviewed. For the preparation, how they meant to be, I need some knowledge about BPMN, which I had, to be honest, never heard before. As I saw it in the first time, it reminded me of UML with some difference in graphical design. And it seems, that this is a part of Business IT.
What I did after the interview was, to go to the one link they offered me, which was in german:
I read the history of BPMN and about the newer Version of BPMN and a short introduction about the most important symbols, which are classified into:
- Flow Objects
- Connecting Objects
After all, my first intention was to follow the link inside this short summary of BPMN, which pointed to the Camunda BPMN reference, which is in english:
At this page, I found out, that Camunda is a Berlin-based Company, who build tools to work with BPMN and they have a big reference, a community and the tools for my first steps, which are:
- Camunda Modeler
- Camunda BPM Platform
Both are open source and free to download. You can also run a prepared Docker image. I chose to download instead of having a docker image, because my resources on my MacBook Air aren’t that high and I’ve worked with some other projects with Docker.
First, if you download and install the Community Platform, you’ll need Java and Apache Maven installed before. Also Spring Boot seems to be a nice/must to have. Read the introduction below:
The Camunda Modeler is the tool to build the processes with graphical elements. I’ve searched for a simple tutorial here at Medium.com and found the Account of Bernd Ruecker (https://medium.com/@berndruecker), who had written a lot of explanations, descriptions and tutorials, especially about process automation, microservices and, of course, BPMN. Take a look at his account and delve deeper in his blog.
The tutorial was (maybe) outdated, but that seems not important at first. It was about the Saga Pattern and had a diagram, a video, some code and a lot of letters to read:
Saga: How to implement complex business transactions without two phase commit.
I talked about Sagas more than 3 times this week so it is time to write a blog post about it.
It turns out, that it was a little bit too complex for my first run, but I solved to build the diagram with the Camunda Modeler. I tried to run it, but it didn’t work. Why? I’m a Newbie and have no clue why, but this was the beginning of my journey of something new. Look at my copied diagram below:
On top I can open, save, align, deploy and run. On the right I have my properties panel and on the left my sidebar with symbols for usage. You can tab between diagram and xml, below are the log messages. The whole diagram itself didn’t work of some reasons and resulted in deploy error at least. I switched to the xml version and compared the log messages with the xml document, just to have a look on it and of course, to understand.
I see a xml declaration first, followed by the first element with the name bpmn:definitions and some XML Schemas, which are distributed by Object Management Group (OMG; https://www.omg.org). So, it seems that it could take some time to find out, why I had this deploy error, but at first I’m satisfied to get my first diagram on track and how to set up the symbols.
Also, one problem in the old tutorial of Bernd Rücker above is, that you can’t put the error boundary event in the start event anymore, so you need to create it within the intermediate boundary event in the newer version of BPMN. Please correct me, if I’m wrong here.
I didn’t copied the structure below out of his diagram, the trip booking saga as my first diagram in BPMN was still enough to get the handling for it.
The BPM Platform
I went back to the Camunda website, checked my downloads and unzipped the download of the platform inside my downloads dir. The whole directory structure was then copied into my $HOME/java/src directory. How described, I executed the start-camunda.sh, which made the rest for me.
After the execution in the shell, I was leaded to a hosted local site at:
I clicked on the links in the navigation bar to get an overview and changed my username and password, which was demo:demo before. Already two processes are installed and deployed. I will try them as next, just to find out, what is happening and what can I do with these examples.
Right after the interview I went to my local book dealer and bought “Praxishandbuch BPMN — Mit Einführung in DMN”, 6th Edition, written by Jakob Freund & Bernd Rücker. To compare BPMN with UML I had bought two years ago the handbook of UML Version 2.5, 6th Edition, by the publisher Rheinwerk Computing. Both links are set below. Take care, they’re written in german. Maybe you find some other in your own native language.
- UML 2.5 (https://www.rheinwerk-verlag.de/uml-das-umfassende-handbuch/)
- BPMN (https://stayhome.hanser-kundencenter.de/fachbuch/artikel/9783446461116)
BPMN is beside UML and EPC, a process notation language to build workflows. It helps an agile process management team to illustrate processes for collaborative Business IT-Alignment.
I like it. Especially the new art of using Low-Code to build applications from scratch. There is a lot more to explore (and interesting), like Cawemo (https://cawemo.com/), a Low-Code Platform, where you can build projects in your browser. I need to know more of how to deploy correctly, what is DMN and so on. Therefore, I need to dive into some process examples and tutorials. I was never a big fan of diagrams, but I see them so many times (in good documentaries)that I decided from now on to boost my skills, becoming a better developer in that way and learning this kind of new modeling.