Explore a new design of dispatcher?
- Dominant language
- Scala
- Stars
- 1.6k
- Forks
- 211
- Avg merge
- 1d 6h
- Merged PRs (30d)
- 89
Description
In Cats Effect, IO and the scheduler are tightly integrated; similarly, the new Netty architecture supports various `IOHandler` and `IOHandle` implementations within the `EventLoop`, leveraging abstractions to enhance CPU reuse and reduce latency. Explorations such as https://github.com/franz1981/Netty-VirtualThread-Scheduler are also worth studying. Currently, Pekko’s default implementation relies on `ForkJoinPool`, and the latest version of `ForkJoinPool` now implements `ScheduledExecutorService`, thereby supporting time-based scheduling. I believe we should examine all these approaches—for instance, Netty’s `EventLoop` already supports time-based scheduling. Within Pekko, `AffinityPool` seems like the most suitable place to explore these practices.
Contributor guide
Research direction
Start with Pekko's AffinityPool and its reliance on ForkJoinPool, then compare the scheduling approaches described for Cats Effect, Netty's EventLoop, and the referenced virtual-thread scheduler. Done means a concrete dispatcher design and exploration scope are agreed, including whether time-based scheduling, CPU reuse, and latency goals fit Pekko.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java, scala
- Domain
- distributed-systems, performance
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100