we need to store some data (actually session-id/auth-token for web-services). This data has to be accessed by multiple different process-instances within a shared process engine.
Currently every process-instance logs into the web-service and get their own session. But the API we are accessing is only allowing a limited number of concurrent users. Doing login/request/logout in every taks is cumbersome, and even if logging out every time we can only have a limited amount of process-instances accessing the webservice concurrently. And we are not talking about 100s but less then 10
Re-Using the sessions would be the best solution - but where to store it ?
In theory it would work like this
Some service-task tries to access the webservice. It looks for a session-id/token in a central store. If none exists -> log in and store the token in the-central store. If one exists the validity has to be checked (expiration, etc.) and if it is invalid it has to be refreshed
It could also be possible to have a recurring process that refresh the session every xxx time-unit.
It should be possible to use a KV-Store like REDIS o consul for it, but maybe there is a chance to store it within camunda ?
Any suggestions ?
Thanks a lot