You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
ActorCell.run() drains all system messages, then dequeues exactly one user message and reschedules (src/internal/ActorCell.ts:~403 plus the finally re-schedule). With the default immediate dispatcher every user message pays a full setImmediate round-trip. Akka processes throughput messages per scheduling slot for exactly this reason; ThroughputDispatcher(16) only batches work units across actors — each unit is still a single message.
Scope
Process up to throughput-per-actor user messages per execute() slot (HOCON actor-ts.dispatcher.throughput-per-actor, default ~16, optional time budget), then yield.
Preserve: system-messages-first ordering, the throttle gate (Token-bucket rate limiting per actor #83), suspend semantics, per-actor dispatcher override via Props config.
Rationale
ActorCell.run()drains all system messages, then dequeues exactly one user message and reschedules (src/internal/ActorCell.ts:~403 plus thefinallyre-schedule). With the defaultimmediatedispatcher every user message pays a fullsetImmediateround-trip. Akka processesthroughputmessages per scheduling slot for exactly this reason;ThroughputDispatcher(16)only batches work units across actors — each unit is still a single message.Scope
throughput-per-actoruser messages perexecute()slot (HOCONactor-ts.dispatcher.throughput-per-actor, default ~16, optional time budget), then yield.Example configuration:
Documentation
Acceptance
Relates
Improvement program M2. #27, #83; pairs with the ring-buffer mailbox issue.