Pekko Actor Heartbeat Timeouts During Default Dispatcher Saturation
0 reputation · 01 Oct 2023, 01:25 UTC
Dispatcher Saturation and Actor Timeout Diagnosis
In a standard JVM-based Pekko deployment, the goal is to determine whether actor heartbeat and timeout mechanisms can misfire when the default dispatcher's ForkJoinPool is saturated by concurrent blocking I/O calls. The default dispatcher shares a fixed pool across non-blocking actor logic, and synchronous operations such as JDBC calls are documented as unsuitable for this pool because they can cause thread starvation.
The uncertainty is whether dispatcher exhaustion delays heartbeat messages or scheduled timeouts independently of actual application failures, particularly under extreme load where JVM garbage collection pauses may compound scheduling delays. The bounded-blocking dispatcher is documented for isolating blocking work, but its interaction with actor supervision timeouts remains unresolved.
- Does default dispatcher saturation directly delay Pekko actor heartbeat delivery and scheduled timeouts?
- Are heartbeat failures distinguishable from genuine actor liveness failures when the ForkJoinPool is at parallelism capacity?
- Should timeouts be measured against a dedicated blocking dispatcher before triggering supervision strategies?