MemBus
MemBus copied to clipboard
Add a real async publishing pipeline to MemBus
This issue takes over from #16 and plans out the necessary steps (more or less) to get real async publishing into MemBus.
Aim
- Ability to await the handling of a published message
- Ability to implement subscriptions that can be truly async.
TODO
- [ ] Introduce an
IAsyncSubscription
interface that returnsTask
instead ofvoid
. - [ ]
IDisposableAsyncSubscription
- this one needs some thinking with regard to cancellation token - [ ] There are a number of ISubscription implementations which would need async counterparts, last but not least
FilteredSubscription
- [ ]
CompositeSubscription
- what makes sense here? If you have several async subscriptions, would you want to await all? Or none? Make this configurable? - [ ]
IAsyncSubscriptionShaper
forIAsyncSubscription
- [ ] Configuration Entry points for the new pieces.
Then there are the things around Flexible subscriptions. New candidates would now be
- [ ] Non-void methods
- [ ] Methods that return a message -> Task<M> should be possible
Progress will be merged into the branch async-pipeline until it's ready.