MemBus icon indicating copy to clipboard operation
MemBus copied to clipboard

Add a real async publishing pipeline to MemBus

Open flq opened this issue 6 years ago • 0 comments

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 returns Task instead of void.
  • [ ] 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 for IAsyncSubscription
  • [ ] 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.

flq avatar Jun 17 '18 14:06 flq