StefanHoutzager

StefanHoutzager

Elixir and BPM (business process management)

Just reading an interesting document wherein elixir takes an important place
http://arxiv.org/pdf/1601.05976.pdf . BPM (business process management), for those who never heard of it, is a sort of Model Driven Development; in BPM you model a workflow / process mostly visual and use this model for execution. So the process that was hidden in your code becomes visible and maintainable for business specialists (I mean specialists that do not code). It can be used together with other MDD parts like BRM (business rules management). Here the rules are extracted out of the code. Even the screen / form builder where you visually compose your forms is a form of MDD. You can choose to create executable models (for example an xml or json that can be interpreted by your code), generate code based on your model or choose a mix. I prefer executable models. Here a company that did a lot of research which names key advantages: https://www.mendix.com/blog/the-power-of-mendix/ .
The paper about bpm/elixir only mentions code-generation, I would like to stress the preference for a model interpreter.
Some web-based MDD frameworks / libraries / tools would definately add to a compelling / competitive elixir development environment.

Most Liked

StefanHoutzager

StefanHoutzager

About the writer Robert Singer of the document: http://www.robertsinger.eu/web/.
Surprising for me that there are no reactions on this post. A wildly interesting subject it seems to me, I think elixir would be ideal for a bpms.

StefanHoutzager

StefanHoutzager

I have never used a full blown BPMS in production, allas. Only small but nifty homegrown workflow design tools. The most advanced one was made in a company for life insurance software. Life insurance specialists could configure their products with the software and use them afterwards. The software was very succesfull and the small company (maybe 30 workers) was bought by their most important customer: a large dutch life insurance company (thousands of workers). I have no idea about improvements that have been made with this product, but you can easily find some things out for yourself with google. I’m sure BPM can be exploited succesfully in other markets also.
I have seen a full blown BPMS during a course of a week. It was savvion. An expensive product, but vast, impressive and “complete”. It was built with java. I’m sure a better version could be built with elixir or erlang. Most BPMS systems moreover need some client install, a webinterface would be preferable. There are at least some online BPMN 2.0 designers (a lot more than just a designer is needed in the UI for a comple BPMS). Bpmn.io (free) is in development, the demo (https://bpmn.io/ , “try online”) is of an old version I think. It is a very very incomplete designer. There are others, f.e. GoJS is not free has more possibilities.
I will search for a video / reading now.
Edit: the first two hits with “business process management” I found worthwile, but they might not satisfy you. These are very short intro’s that give an overview:
https://www.youtube.com/watch?v=XtvIU0ZCwjE
https://www.youtube.com/watch?v=_YXqnEXnnBk
To see the software in action you could look at f.e. some savvion demo’s on youtube or google for “best business process management software” or whatever, choose the tool that looks promising and try to find more info on it

MrDoops

MrDoops

Where BPM sorts of solutions can be very powerful is when you have somewhat technical domain experts who can’t code, but can model or read a business process diagram. Spreadsheet wizards tend to find this kind of pseudo-coding easy. I walked through an accountant responsible for our sales commissions how to use Process Builder (Salesforce tool) and sent him some documentation to reference. It took him a couple weeks, but he automated a lot of the headache in that process without me having to spend the time to learn the domain in depth to code up a solution. I’ll have to rebuild that piece pretty soon anyway (it is a Salesforce tool after all), but it has provided a lot of value in the mean time, and now I have something to reference when scoping the long-term solution out.

Poorly/cheaply/quickly built applications can run into the issue of requiring a developer resource to make changes to processes, and that can be very problematic for a business. It can get worse when the business hacks together some other solution with spreadsheets and now the source of truth is spread-out (pun intended). As much as I dislike solutions like Salesforce, they do allow for quick, point-and-click changes which is something that Rails/Phoenix approaches which require a developer resource aren’t very good at unless the change is designed for.

BPM / declarative business process modeling solutions would be good for communication and frequently changing domains. That being said I think the line where a business should just call up an experienced consultant and have them build it is sooner than typical.

yawaramin

yawaramin

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:

uranther

uranther

I am still reading through that paper but I really like the idea of Model-Driven Development (Architecture/Engineering/??) in general and using Elixir/OTP especially. It’s a fresh recipe of these technologies :slight_smile: I agree about model interpretation rather than code generation; that just makes plain sense.

Have you used MDD in production before? What kinds of processes were being executed? Did it improve communication and understanding among the team(s)?

EDIT: I finished reading the paper and it whet my appetite. Do you have any good videos or reading on this topic?

Where Next?

Popular in Discussions Top

bartblast
With the core component system and HTTP/WebSocket infrastructure solid, it’s time to tackle Pub/Sub support. What We Have vs What’s Miss...
New
artimath
I think I’ve tried 5 different graph database libraries in the last two days and not a single one has been able to connect to a remote/lo...
New
juhalehtonen
There has been a thread to discuss the Stack Overflow Developer Survey on this forum every year since 2018, so here’s yet another one for...
New
garrison
The Elixir ecosystem is one of our biggest strengths, and the BEAM really lends itself to native implementations (e.g. Cachex over Redis,...
New
AstonJ
A recent chat with @leifericf inspired this thread - he’s worked in the gaming industry, and so it got me wondering what kind of industri...
New
josefrichter
Has anyone tried Github Speckit or similar projects like AgentOS, BMAD, etc.? They basically offer a bit more structure in context windo...
New
krainboltgreene
Today I noticed that when defining a embeds_many the new struct has a default of [] which is confusing since: You can have jsonb[] colu...
New
adam
I wonder if anyone in the community has started to use Github’s Codespaces for their team’s development? If so, what is there to learn? ...
New
chrisliaw
Hi, I’m wondering is it my thinking process or this is the norm among the Elixir developer for the use of Struct and accessor functions ...
New
isaacsanders
When I try to run my applications and I haven’t updated the dependencies, the output tells me to run mix deps.get. Why doesn’t the binar...
New

Other popular topics Top

srinivasu
How to handle excepions in elixir? Suppose i have A, B, C ,D, E modules. and each module has get() function. A.get() method will call th...
New
dotdotdotPaul
Okay, I'm having a heck of a time trying to figure out how to best handle the validation of belongs_to associations in Ecto. I'm sure I'...
New
bsollish-terakeet
Credo is smart enough to check for (something like) this: assert length(the_list) == 0 with this response: Checking if an enum is empt...
New
yawaramin
In the Dialyzer docs ( http://erlang.org/doc/man/dialyzer.html#requesting-or-suppressing-warnings-in-source-files ), there is a way to tu...
New
aalberti333
As the title describes, I’m trying to run Enum.map() over a list of key/value pairs, where the value is a map. My data looks like this: ...
New
vac
Hi, I'm quite new in Elixir and I'm trying to format a string to a PEM format. I have the certificate value like MIIDBTCCAe2...... and ...
New
minhajuddin
I have seen a lot of code which picks the first element from a list using Enum.at(0) instead of List.first. Is there a reason why people ...
New
ashish173
I am using Ecto timestamps with postgres, I can see the timestamps() use the :naive_dateime but for my use case I wanted to store the ti...
New
electic
Hi, I am new to Elixir. I am trying to use the DateTime component to insert a date into MySQL however the there seems to be no way to fo...
New
Fl4m3Ph03n1x
About me? ( if you have nothing better to do than reading about some random guy in the internet :stuck_out_tongue: ) Hello all, this is ...
New

We're in Beta

About us Mission Statement