Flowable performance and scaling

Keeping Flowable fast under load: async executor tuning, ID generation, history volume, concurrency control, external workers and caches.

Tuning the Flowable async executor

Sizing Flowable's async executor for your job volume: thread pool and queue settings, acquisition behavior, timer and async job tables, what happens when the queue fills, and the database load each setting creates.

Flowable UUID ID generator for high concurrency

When to switch Flowable from the default database ID block generator to the StrongUuidGenerator: the high-concurrency failure mode, idBlockSize tuning, the extra dependency, and testing both under load.

Flowable exclusive jobs and concurrency

Why Flowable runs jobs from one process instance sequentially by default, how exclusive jobs prevent optimistic locking failures at joins, and when non-exclusive jobs are worth the risk.

Flowable optimistic locking exceptions

Diagnosing FlowableOptimisticLockingException under concurrent load: parallel branches meeting at joins, async continuations, API callers updating the same instance, and the modeling and retry fixes.

Scaling Flowable with external workers

Moving heavy or slow work out of the engine into external workers: topics and job acquisition, independent scaling of worker pools, lock durations, and the effect on engine threads and database load.

Flowable process definition cache settings

Configuring Flowable's deployment cache for many process definitions or tenants: cache limits, memory use, behavior across cluster nodes, and when a custom cache helps.

Talk to our team.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.

  • 30-minute call: free, with no obligation.
  • NDA on request: we can sign before you share details.
  • Clear next steps: a scope and plan after the call.