Porting flowable engine to C#

Hi, im trying to port flowable to .Net core 2.0

Ive been reading the source files, i would like some guidance, from what ive seen.

the first thing i would need to translate would be

flowable-bpmn-converter and flowable-bpmn-model

anyone have any advice for something i might be missing?

Why i want to do it,
first because i want to extract the core bpmn handling from everything else. because i dont want to have to include many stuff i dont need.
second because i work mostly in c# and i dont want to be dealing with java.


I have the same concern. It would be a better way to use Flowable Rest API. I am not sure it can cover all logic of core BPMN.

Please let me know if Flowable can support C# developer.

Have a nice day.

I don’t have any advice for the OP. But, @Mark, you are correct, if you’re trying to use Flowable with C#, the REST API is the way to go. In that case you’re probably going to be orchestrating services that are written in C# as well. In that case, you’d probably be using a lot of HTTP tasks and making prodigious use of script tasks.

1 Like

@wwitt, Thanks for your reply. In the coming days, I will try to make a case that using C# to invoke Flowable Rest API. I think It would be amazing to have an actual example. If someone already has one case, it’s great to share.

Best Regards.

Update on this, me and my team (4 ppl) finished our first sprint having covered all model, converter and validator packages, was hard in some parts but we unittested everything from the models clone to the BpmnXmlConverter methods, we rearranged all the clases as we saw in the bpmn doc, with packages like Foundation, Activity, Gateways, Events, etc…
So, what im saying is … we are doing it. even if nobody here give us any advice,
Right now im looking at the flowable-engine package to see which is the next step, im seeing the dependencies go to BpmnParser and thats where im headed, but i would like to know how can i implement all those interceptors and event listeners and handlers and kinda understand how to translate from the mybatis maps, to something like NetCore 2.2 entity framework… If someone has any advice, i would love to receive it and i would be forever gratefull.


Interesting plans. Are you planning to do this open source? Do you have a link to the project?
The data and entity managers together with the mybatis mapping files should be self-explanatory for the most part. If you need any specific guidance then let us know.

Best regards,


Hi, thanks for the answer.

Right now im focused on finishing within deadlines. the project is in a private repository, working in a GRP, my employer would have to decide if they want to share back, but i would gladly contribute to any project that has the same goal i have.

Hi, I am curious to know where you are on this project. Were you able to successfully convert Flowable to .NET Core?

Also, what’s the reason for this conversion? Aren’t there other BPM Engines for .NET Core available?

im deep in my 4th sprint, im almost done with the behavior files, the main problem im having is the widespread use of static classes, which im re-writing to use dependency injection, and the sheer size of the configuration files, some of which are about 6k lines, which i plan to re design, because most of configuration can be done in a better way in .net core projects.

Hey, I am trying to do the same. are you employer considering it for open source. it will be great help for many.

I dont think this will happen in the near term, because we are integrating it with a grp and with deadlines upon us, i think this is not a priority, but i would gladly help you, how much have you advanced, what i can tell you is, lose the configuration, BaseProcessEngineConfiguration is the biggest trap in the whole codebase, i ended up using IServiceProvider and IServiceCollection from .Net, instead of a huge configuration file, the only need you have for configuration is configuration Values, not services or repositories, and after rewriting everything to use dependency injection, the configuration object becomes a liability because having it as a singleton and keeping references to services is a big no.

If you need puntual help im glad to keep contact.

Did you publish it as open source?