Thorben, thank you for your time and all your answers!
As I see, one application (one single war) dealing with multiple tenants dynamically can be somewhat difficult to handle. Both the dynamic creation of databases as bootstrapping each tenant's engine on server startup (potentially 1k engines) may become a headache. This, coupled with the problem of deploying a single process application to a dynamic set of engines, make me think in this solution as somewhat hard to implement and maintain.
Even the partitioning could require a lot of care, because since I'll have one application and multiple engines distributed across different nodes (each one against different schemas), then I should take care of balancing the users of every tenant to the node which has that tenant's engine.
So, I'm wondering what if I have one Process Application, and just one Process Engine for all my "tenants". Since all of them will use the same app across all nodes, maybe it's better to manage all the multi tenancy related stuff internally because it's more like "logical multitenancy" rather than "physical multitenancy". Of course I'll have to use the Tenant Marker per process instance approach and deal with the tenancy separation internally.
So, the question this time would be if you consider with this mentioned setup Camunda will be able to handle all this workload properly.
- One Process Application
- One Process Engine, replicated across different nodes.
- Almost 10k process definitions in the worst scenario
- Up to 10k process instances per day
One thing that I think makes some noise in this solution is from the performance point of view, would be better to have multiple engines to manage that load? Or do you think one engine (clustered) can perfectly manage all of it?
Againg, thanks for your time :)
Regards,
Cristian.