BPM in a Microservice World: Part 1

This article was originally published on Diabolical Labs.

Business Process Management (BPM)-enabling software has been around for decades, having started as document centric workflow. It’s progressed into the Service Oriented Architecture (SOA) age to become an orchestrator of services and human tasks.

Now, we see that the Service Architecture is evolving to include a relatively new concept called Microservice Architecture (MSA). That architecture along with enabling technologies like Cloud Services and Application Containers is allowing us to apply process management practices to solutions in a much more lightweight and agile way.

In the upcoming blog post series, I’ll be exploring the application of BPM principles to solutions that can implemented with MSA. In this first part, I’ll review traditional BPM practices and their pitfalls, followed by a guide to begin the convergence of BPM and MSA. re with MSA.

You can also learn more in the webinar I’ll be hosting on 9/27 at 11am ET.

Screen Shot 2016-05-26 at 2.01.22 PM

First some background.

Generally when the topic of BPM comes up we think of the BPM software suite. There’s another side to BPM though, and that’s the practice of Business Process Management which doesn’t require any software at all.

Traditionally the BPM Practice has focused on continuous process improvement. There are various methodologies but it generally comes down to this:

  • Collect metrics on the existing process
  • Analyze those metrics
  • Propose an optimization
  • Simulate the optimization with the collected metrics
  • Institute the validated optimization
  • Do it all again

There’s nothing wrong with that. We’ve occasionally had good results with continuous improvement for processes that are core to a business.

A good candidate would be a fee-for-service health insurance claim process. It’s a process that’s been around for decades and will likely be around for additional decades. It’s also high volume, so even the smallest improvement can have a major impact.

The unfortunate truth about applying the practice in this way, is that it is very time consuming even with the best software. It can take at least weeks, if not months or years, to get anything meaningful done.

That may be acceptable for a core process, but for most other processes that lead time is just not acceptable. Even if a program or project is approved with estimates made by the most experienced practitioners, it will likely be considered a failure after the inevitable missed deadlines and cost overruns.

We need to provide obvious value much faster. By fast, I mean within hours for something critical, to no more than a few weeks for something significant.

Unfortunately, many of the BPM software suites have become unwieldy behemoths that include a variety of sophisticated functions in a very complicated package. They are generally architected such that the workflow transaction (request) is under complete control of the process engine. This can’t work in a MSA where the various microservices can send messages to one another in an ad hoc manner. We need to change our viewpoint from being an orchestrator of services to a monitor of milestones.

We can still apply BPM patterns like SLA management to processes that include microservices. The process diagrams will look basically the same. The difference is that instead of controlling the movement of a transaction through activities, we will be monitoring milestones as the transaction moves through services. I’ll call them “tracking processes.”

If the services or message bus can ping events to the process manager at certain times, we can create processes that wait for these signals before proceeding on the the next milestone. In the case of SLA management, if the SLA deadline is approaching and we haven’t made progress toward a particular milestone, we can start a new workflow to deal with it. It could perhaps include a human task for some to investigate the delay, or send a message to the client notifying them of a delay.

In the next post we’ll see how to design a workflow that tracks milestones rather than orchestrating activities.

 


Connect with Red Hat Consulting, Training, Certification

Learn more about Red Hat Consulting
Learn more about Red Hat Training
Learn more about Red Hat Certification
Subscribe to the Training Newsletter
Follow Red Hat Training on Twitter
Like Red Hat Training on Facebook
Watch Red Hat Training videos on YouTube
Follow Red Hat Certified Professionals on LinkedIn
Creative Commons License

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s