Elixir and BPM (business process management)

I think the issue is BPM tools are marketed toward senior management generally involve high touch sales and like most “enterprise” products generally don’t have much love from developers.

1 Like

For clarity: a bpmn modeler does not generate code, each model is persisted in xml. It is this xml that you can interpret in a backend language like elixir. I dare not think of a tool that generates a bpmn model from code. Keep in mind also that these tools are meant for orchestration only (and process mining / management). The bpmn contains pointers to services / forms etc, but no details about those.
Maybe you can try an event storming session with a bpmn editor instead of stickies, on a big screen. The screen would look like https://demo.bpmn.io/new (this is not the complete modeler, the real one contains a properties editor on the right and there may be more, I send the link just to give an idea).

Now that I’ve found this thread I’ll have to give a write up soon.

Short version though: BPM generally aligns with ISO certifications that companies aim for which require documenting business processes. Then you move from being able to take a flow chart and turn it into something that runs. Then you start hooking nodes of that flow chart into other systems to automate away some of the human bits where possible.

The power in it is the ability to start simple and then improve as you find the process being repeated a lot. Anybody can write up a process and drop it in a folder on a network drive to say “this is our on-boarding process” but without a system to enforce it, it probably won’t be.

With BPM in place you start with essentially a flow charted checklist, then you start routing it to different people based on responses in that checklist.

My interest comes because I see a lot of benefit from it for my wife’s small business. It could make her life a lot easier for managing everything from signing up new patients, filing insurance claims, handling employee license renewals, patient discharge, etc. Unfortunately, the systems are pretty complicated as most seem geared toward larger companies…and most are written in Java as well.

It’s very much a glue system that handles talking to both humans and APIs.

Simple examples would be something like an on boarding process for new employees that steps through paperwork, HR, benefits, legal stuff, systems access, etc. When you are done you are looking at talking to multiple people to ensures proper bits have been covered, creating email and calendar access, granting access to specific systems, etc. The whole process might take a few days, including check points and reminders. Somebody may need to review where each person is in the process and multiple people may be on-boarded at the same time.

BPM creates a way for that to happen in a manner that can be visually reviewed, understood, enforced and then updated.


I think that too. What often is not seen (and even looked away from by those in the “higher” ranks!) is that modeling in bpmn is programming. Only with a language that contains other symbols. It has bothered me all my programming life, this underappreciation of programmers and overvaluation of “doing a more functional job”. I have seen lots of developers take over this attitude.

I find this a good paper about the value of workflow engines https://blog.bernd-ruecker.com/bizdevops-the-true-value-proposition-of-workflow-engines-f342509ba8bb .

See the link for the links in the article.


I’d agree completely with the living documentation description. It’s basically living documentation + information flow + api chaining.

1 Like

Your quote “BPMN is the most underappreciated technology in our field IMO.”
appeared today in this article: https://zeebe.io/blog/2018/08/bpmn-for-microservices-orchestration-a-primer-part-1/

LOL. Wow. I gotta watch my comments.

It really is underappreciated. With all of the web services that are out there, BPM gives a glue + rules + human relay interface to it. It’s largely ignored when it comes to programmers, because we naturally gravitate toward “I’ll just hook up to this API, then write a few conditional statements…” and we one-off that stuff to death rather than using BPM.

Amazon even has a simple web based one called SWF minus that graphical bits.

1 Like

It is almost totally ignored on this forum also. Search for BPM and see the reactions.


Q: When should I use Amazon SWF vs. AWS Step Functions?
… AWS customers should consider using Step Functions for new applications. If Step Functions does not fit your needs, then you should consider Amazon Simple Workflow (SWF).

Hadn’t seen Step Functions yet.

There is netflix conductor also. https://medium.com/netflix-techblog/netflix-conductor-a-microservices-orchestrator-2e8d4771bf40
Have not looked into it yet.

I am sure that BPM is a compelling technology. I regularly wish for more and better business/technical documentation no matter where I work. That said, at the end of the day, this is a forum about the Elixir programming language, not BPM. I am sure there are forums (e.g. https://forum.bpmn.io/ ) where BPM is thoroughly discussed.

Now, if you post a project here which implements (or at least starts to implement) a BPMN backend in Elixir, with a small example of how to use it to run a BPM diagram, I feel very confident saying that people will show interest :slight_smile:


I developed my (start of a) bpms in my spare time, between payed freelance jobs. To at least learn elixir. I would like to get work with it. Currently I’m on a freelance job again, not with elixir. It proved hard to find work with elixir. If anyone sees a business opportunity I would be more than happy to work further on the bpms, payed. I would prefer to make the product open source. Anyone interested can PM me, I can give a demo and code insight.

Maybe, but what about the learning curve? Many businessmen like certain terms and if you present your training case properly, that can win you a week or two but would that be enough for a programmer to get a good workable knowledge level?

I will still claim “don’t fix it if it ain’t broken” because making a team of 10+ people use the same tools for documentation and processes is times harder – and much more time-consuming – than just one-offing things.

Don’t get me wrong please – also addressed at @StefanHoutzager – I would love to use something like that. But between not being able to learn it in an afternoon, to not having brief video tutorials, and swimming uphill by trying to make a team of people use the same tools… I think many of us are excused for not bothering.

Just bother when you see a use case. Problem is you have to have some minimal knowledge of what bpm makes possible to see them.

1 Like

I’ve always thought a big step in the right direction towards usability improvement with BPM systems would be a simple webhook receiver. Structure something that’s your default for receiving hooks that can make it easy to determine what you want to do with them afterwards and possibly streamline that workflow.

Then set it to where you can export those simplified rules into official BPMN.

I really think that would be enough to get people utilizing the concepts earlier on in their process.

I don’t know much about BPM but just reading through this thread it makes me think about CA Plex. I worked for a software that used it for almost everything, other than myself and another guy who did .net stuff. Is this something new or ideas from the 80’s being updated and reused?

From: The difference between workflow and business process management

Business process management isn’t a very good name for the discipline, for example because it isn’t only useful for businesses, but it’s the best name we have. Apart from ‘workflow management’, unless you think that’s worse, of course.

I ran into this because I noticed that Workflow Patterns seemed to avoid “BPM” on the cover (at least) - but that may be related to it aligning more closely to with YAWL than BPMN.

I’d say that it’s a old problem that always needed solving (and has been solved in a variety of ways) but newer attention has more to do with how technologies (and some of the resulting methodologies) are being brought to bear on it (which often seem to center around the idea of obviating the need for getting analysts/developers/programmers (or acquiring the associated mindset) involved).

Is elixir something new or ideas from the 80’s (erlang f.e.) being updated or reused? And functional programming, how old is that? :wink:
BPM is not new, and it has had it’s evolution. For example the open standard modeling dsl BPMN2.0 was released in 2011. Plenty of info to be found with google if you’re interested.