The current executors and execution strategies heavily relies on threads, managed directly by bonobo. A proof of concept of an async-based core exists in https://github.com/hartym/bonobo/tree/executor_reloaded/bonobo/execution/reloaded which enables a lot of new things, including having non a FIFO node running n-times concurrently.
Also, all current code can continue to work, because the async-world way of running synchronous code is just to wrap it in a thread, which is also what bonobo is doing, so we can happily delegate that to asyncio (ou trio, or whatever-io library).
This is also a good opportunity to redefine precisely what are the role of each parts (contexts, executors, strategies ...).
The current executors and execution strategies heavily relies on threads, managed directly by bonobo. A proof of concept of an async-based core exists in https://github.com/hartym/bonobo/tree/executor_reloaded/bonobo/execution/reloaded which enables a lot of new things, including having non a FIFO node running n-times concurrently.
Also, all current code can continue to work, because the async-world way of running synchronous code is just to wrap it in a thread, which is also what bonobo is doing, so we can happily delegate that to asyncio (ou trio, or whatever-io library).
This is also a good opportunity to redefine precisely what are the role of each parts (contexts, executors, strategies ...).