Around25 / hashiru-bpmn

A BPMN execution engine in Elixir
Other
14 stars 4 forks source link

Is this working code? #11

Open CharlesIrvineKC opened 6 months ago

CharlesIrvineKC commented 6 months ago

Hello. I've been thinking about writing a BPMN execution engine in Elixir. I've got lot's of BPMN experience and a couple of years of Elixir - mostly writing a Elixir/Phoenix/LiveView web app.

So, is this a working project? Meaning, can I load a simple BPMN2 process model, create a process instance, and run it?

Thanks, Charles

cosmin-harangus commented 6 months ago

Hi, it's not a complete implementation. It's the start of a BPMN processor, but it was never finished. If you start working on one or would like to contribute to this one let me know. I would be interested to contribute as well.

CharlesIrvineKC commented 6 months ago

After having spent 6 years working with multiple BPMN tools, I think that the visual design tools and the backend XML BPMN syntax are both in need of replacement. What I would like to create is a highly readable textual syntax that would be acceptable to programmers. If this sounds interesting to you, maybe we could start a dialog. Are you located in the US?

cosmin-harangus commented 6 months ago

I agree that the current tools are hard to use and have a high learning curve. What kind of textual syntax did you have in mind? The focus of the current project is to load a BMPN process exported from Camunda and allow it to be executed. I've worked on a BPMN engine a long time ago and my goal with this project was to build one in Elixir or Go to support nocode applications.

The format of the BPMN diagram isn't really the biggest problem I faced so far, but having a more up to date editor that can be integrated into existing applications would help build more customisable applications.

I am open to have chat if you want, but I am not located in US. I'm from Romania and my timezone is UTC+2.

CharlesIrvineKC commented 6 months ago

The learning curve isn’t an issue for me.

Syntax candidates are: Elixir macros & YAML. Elixir macros would expand to the corresponding YAML.

I view a BPMN process model as a service orchestration specification. Even human tasks can be viewed as a service request to be completed by a human.

I view BPM process modeling as being a potentially highly skilled programming discipline. So, even though a “low code” or “no code” approach has significant marketing value, in reality any non trivial BPM application requires skilled software engineers.

In the ancient past, programmers visually specified computer programs using flow charting. This was replaced with structured programming which we still basically use today.

Visually depicting process models with BPMN2 is similar to flow charting and in my opinion needs to be replaced with structured text, e.g. YAML or Elixir macro. For readability and maintainability, process models should be highly hierarchal like other kinds of programming.

So, basically, I want to replace BPMN2 with something software engineers would willingly adapt to. In my experience, they do not willingly adapt to BPMN2 process modeling.

I would open source the process engine, process model ingestion and instantiation and try to make money off of support and the necessary user interfaces.

On Feb 16, 2024, at 2:34 AM, Cosmin Harangus @.***> wrote:

I agree that the current tools are hard to use and have a high learning curve. What kind of textual syntax did you have in mind? The focus of the current project is to load a BMPN process exported from Camunda and allow it to be executed. I've worked on a BPMN engine a long time ago and my goal with this project was to build one in Elixir or Go to support nocode applications.

The format of the BPMN diagram isn't really the biggest problem I faced so far, but having a more up to date editor that can be integrated into existing applications would help build more customisable applications.

I am open to have chat if you want, but I am not located in US. I'm from Romania and my timezone is UTC+2.

— Reply to this email directly, view it on GitHub https://github.com/Around25/hashiru-bpmn/issues/11#issuecomment-1947958770, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAFAM2UHAFYK7NGFHWTWPKLYT4KZ7AVCNFSM6AAAAABDI7HJZOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNBXHE2TQNZXGA. You are receiving this because you authored the thread.