Should we use Reactive Extension's Observable pattern to run multiple dependent async tasks?

Hi All,

I have a general question regarding designing the architecture of my cross-platform solution (Xamarin.Forms and ASP.NET Core).

I have a requirement of calling multiple API endpoints (similar to a blog aggregation app) and I want to create a shared REST API wrapper library using Reactive Extension or Refit which will be consumed by both Xamarin.Forms and ASP.NET Core website. As per the Reactive Extension (Rx.NET) documentation - "An advantage of this approach (Observable) is that when you have a bunch of tasks that are not dependent on each other, you can start them all at the same time rather than waiting for each one to finish before starting the next one". But in my case, I want to start multiple API endpoints call in background but want to wait until all completes which means that the tasks are dependent here.

Does it make sense to use Rx.NET's Observable pattern here as my observer as a subscriber will not receive any notification from Observable until all tasks complete? What are the pros and cons here if I use Task Parallel library (with Task.WhenAll()) rather than Rx.NET's Observable considering I need to consume it on both mobile (X.F) and web (ASP.NET Core) platform.

Sign In or Register to comment.