Production-ready configuration values for Async Saga subsystem

Hi all,

Please suggest any production ready configuration pairs for axon-async saga processing:

<axon:async executor=“sagaExecutor” buffer-size="${axon.async-saga.buffer-size}"

processor-count="${axon.saga-executor-processor-count}"

transaction-manager=“sagaTransactionManager”/>

<bean id=“sagaExecutor”

class=“org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor”>

It will be nice to know required correlation between processor-count, buffer-size and thread-pool’s core and max pool sizes.

Best regards,

Alexey Krylov

Hi Alexey,

basically, the corePoolSize must be >= processorCount. If the executor is exclusively used by the Sagas, corePoolSize == processorCount and no specific maxPoolSize will do.

The most important thing to note is that the AsyncSagaManager will immediately claim “processor-count” number of threads from the pool and only release them when the application (or saga manager) stops.

Cheers,

Allard