Selected type of Camunda BPM Platform Architecture

Hi,

I want to use the Camunda BPM process engine to automate some workflows.
I plan to distribute the applications through Docker. I might also need to adapt the web-applications (e.g. customize the layout).
What is the best option for the process engine architecture?
I’m oriented towards the Shared Process engine (instead of the Embedded or the Standalone).
Will I face any issues?
Also, does the server selection (Tomcat/JBoss) play any role for docker deployment?

Thx

You can read this blog post and let us know if you have any questions.

1 Like

Thanks Niall for the link.

My case fits more like the distributed services, but since I want to write Java applications to handle business logic, it seems to me that BPM Run is not enough.

So, I think a full package distribution is preferred.
Still, not clear for me if the Shared Process Engine or the Embedded Process Engine is better option (https://docs.camunda.org/manual/7.14/introduction/architecture/).

My process application will be process models in which each task will call different services (e.g. call a robot to do sth, or request a sensor value from a Context Broker, etc.). Each of these services will be independently developed and deployed, also through Docker.
What I had in mind is to provide the engine and the built java application through Docker where someone can download, install, deploy and run.

What do you think?

Thanks.

If your business logic is written and maintained externally then it makes sense to use a distributed architecture with your business logic working be using the external task pattern to subscribe for work.
That will make it really easy to maintain and deploy your model and your business logic independently.

Hi guys again,

I would like your opinion on how to setup the Docker containerization of the applications I build with Camunda.

So far, I have been using the full, pre-packaged distribution with the Shared Process Engine and the shipped webapps (Tasklist/Cockpit/Admin) that run on the Application Server (I mostly use Wildfly).
I build my own java application which has a few BPMN models and the corresponding delegate code that these models include (e.g. listeners on tasks that call some services). My application also connects to a DB server for retrieving and persisting related info. See fig. below:

I know that there’s a docker image that includes the engine and the webapps.
But if I want to deliver the whole picture as Docker image(s), how can I do that?
Can I first put my application in the full distribution (e.g. by placing my .war file in the deployment server, as I’m doing so far), and then make this package as an image? But what about the DB server?

Or do I have to use separate docker images? E.g. one image for the Camuna BPM platform (engine and apps), one image for my own application and one image for the DB server?

Also, I want to customize the default webapps, so how does this affect the use of the provided Camunda platform image from here GitHub - camunda/docker-camunda-bpm-platform: Docker images for the camunda BPM platform?

Thanks