Architecture Overview -- clarification of different models

I am new to Camunda and I have a question about the different models.

Is there a difference, -from a Java code perspective- between the Embeded, Shared-Container Managed, and the Clustering models? I understand the REST API is completely different to call the Process Engine, But from reading the docs, it seems that, besides from some configurations, in the code itself, I get an instance of the ProcessEngine and make calls to that. Im sure that is an oversimplification, but is that basically correct?

For instance, if I write some code that uses Camunda, put it in a .jar file, will it work in ANY of those 3 situations? Any clarification and/or tips would be helpful.

Hi @mmaceachran,

I think from java delegate code perspective there is no difference. You should be able to access all services as usual. Now packaging does have different limitations as in general you will not be able to include embedded engine in your container managed shared setup, therefore jar structure is slightly different for embedded and shared engine cases.

Does that help you?

So is the Container managed and the clustering identical, they just point to the same DB?

Hi @mmaceachran,

in general yes, you can read more about the topic here: