Here in our company we're currently facing a challenge around starting a high amount of processes that are quite heavy. First, here is some context on our big process definition:
We're using APS v1.11 (this lable wasnt available). We start by calculating some results from an external source. We do that through a REST call in a java delegate. This step can take from a few seconds to a minute, depending on the input data that will be used to start the process.
We then store the result JSON of this calculation (which can be pretty heavy, about 300kb to 1mb) in a process variable. We have to do it because there are gateways and other decision making steps based on the results of this calculation.
After some steps, we then need to generate a document based on it, which is done by another external source through REST. This source gives a download link back which we store in another process variable.
As a last "heavy" step, we store this generated document in ACS (ECM) which is then another REST request.
As you can see, it's a pretty big process with lots of call activities and sub-processes involved. We have a new client that, from time to time, will need to run thousands of this process in a short period of time, thus we want to improve performance. Also, since all process variables are also stored after a process ends, we want to decrease the amount of storage needed in alfresco DB + making it easily available to analysis.
We started investigating using data models to only save necessary bits of the result JSON in an external, analysable database, which shoulld remove the need of storing huge json blobs in process variables
All of this runs in containerized versions of APS and other apps as well using Docker(dev) and Kubernetes(prod). Is there any advice / arcticle / piece of information you can give to help us out in this situation?