Many BPM practitioners are used to utilizing a software suite that has some sort of Process Manager component that has control of the transaction as it progresses through activities. The process is generally authored and visualized graphically in BPMN or BPEL. When applying BPM in the microservice world we don’t have that visibility or control.
A microservice architecture, more or less, forms a web where many services can call each other in an ad hoc manner. Such an architecture is rarely designed visually like we are used to in BPM. That will likely change as the MSA tools and frameworks mature but for now, each service is relatively independent and less attention is given to how the entire solution behaves as a whole.
Business processes that are realized with a traditional architecture or a microservice architecture can still benefit from the practice of Process Management. There still can be resource constraints, rework, SLA violations, lack of auditing, etc. The problem is that we can’t easily see and understand what is happening visually as we would with a traditional solution.
To solve this, we can apply a concept called Process Mining. We can actually create the kind of process diagrams we are used to in BPM by collecting event logs from the MSA. We then apply various algorithms to the events that can then discover a process diagram.
The logs can be in any format however there is a standard called XES that can be used to represent the data needed to produce process diagrams. Generally we need to know the resources that were involved in an activity, it’s start and stop time, as well as some kind of identifier that can be used to correlate related activities. The identifier is the hard part since you won’t likely want to force microservice designers to accommodate this need. There are some creative ways to impute such an identifier by the proximity of execution time along with some other datum.
Once the logs are accumulated, they can be transformed to XES format such that they can be imported into existing process mining tools for analysis. I’ve used two such tools. There is an open source tool called ProM and a commercial tool called Disco. ProM isn’t very easy to learn, but once you do, it is quite powerful. It can produce a BPMN diagram that you can then import into your traditional BPM Suite so that process simulation can be done against the transaction logs.
In doing this you may find that the solution could benefit from more instances of a particular microservice. You may see that there are many messages traveling through just a few services and perhaps they can be broken down more. You may also find that human resources are causing a backlog. Perhaps transactions that originate in Europe are being processed in the US and could benefit from having a node in the cluster local to the originator.
This is all stuff that we traditionally do in process optimization. By applying Process Mining, we can now do the same with processes running over microservices.