Configuration Properties Of stacksaga-spring-boot-starter

Property DataType Default Value Description

stacksaga.domain-entity-scan

[]

String[]

A comma-separated list of package names to scan for @SagaDomainEntity annotated classes. for instance, com.example.domain,com.example.anotherdomain.

stacksaga.scheduler.execution.parallelism

Runtime.getRuntime().availableProcessors()

int

The number of worker threads backing the framework’s shared, non-blocking executionScheduler — the parallel reactor.core.scheduler.Scheduler (created as Schedulers.newParallel("saga-exe", parallelism)) that drives ongoing reactive/saga processing, and that a ReactiveTransactionEventListener#onStateChanged implementation runs on. See ReactiveTransactionEventListener.

stacksaga.scheduler.blocking-execution.thread-cap

Runtime.getRuntime().availableProcessors() * 10

int

The maximum number of threads the blockingExecutionScheduler — a bounded-elastic reactor.core.scheduler.Scheduler dedicated to invoking blocking, non-reactive user code such as TransactionEventListener#onStateChanged — may create. See TransactionEventListener.

stacksaga.scheduler.blocking-execution.queued-task-cap

100000

int

The maximum number of tasks the blockingExecutionScheduler may queue once every thread up to thread-cap is busy, before further submissions are rejected.

stacksaga.scheduler.blocking-execution.ttl-seconds

60

int

The idle time-to-live, in seconds, before an unused blockingExecutionScheduler worker thread is reclaimed.

stacksaga.scheduler.blocking-execution.daemon

false

boolean

Whether blockingExecutionScheduler worker threads are created as daemon threads. Left false by default so the JVM does not exit while a listener invocation is still in flight.

stacksaga.scheduler.graceful-shutdown-timeout-seconds

30

int

How long, in seconds, shutdown gives each scheduler’s in-flight/queued tasks to finish before forcing an immediate disposal. Applies to both executionScheduler and blockingExecutionScheduler.

stacksaga.instance.cluster

-

String

The cluster this instance belongs to. Components only connect to one another when their cluster values match, so it must be identical across every Master, Slave, and Orchestrator that needs to connect.

stacksaga.instance.region

-

String

The region this instance belongs to. Components only connect to one another when their region values match, so it must be identical across every Master, Slave, and Orchestrator that needs to connect.

stacksaga.instance.zone

-

String

The zone this instance belongs to. It has no functional impact here, but should be set as per the StackSaga core specification.