Each plugin should be able to define the executor they should run on.
cooperative: Using the async implementation, currently, asyncio.
process: Deferring work to a process on a process pool.
thread: deferring work to a thread in a thread pool.
Current problems to solve:
- The collectors return events using an async generator. How can we do the same when deferring to either a process or thread pool?
- The process/thread pools should be configurable, ie, how many processes/threads should the pool run.