Our application runs on Azure Service Fabric and is separated into services that handle different aspects of the application. We’ve got a service running on a stateless ASP.NET MVC service that manages the web client. In order to access data in other services (such as fill a grid), we’ve had to rely on callbacks to get this data.
I’ve attended Udi’s distributed system design course and have learned that using the Callbacks package should be avoided. We’re experiencing some really sub-optimal performance as well, with callbacks with even small payloads taking seconds to complete.
The solution I have in my head is to transition our Web service to a stateful ASP.NET MVC service, and when objects are created in other services, the web service would subscribe to those changes and update the stateful reliable collections. The web service would only hold the data it needs to display in the web app, any create/update/deletes would get published to be handled by the other services.
Does this solution make sense? Is there something I’m missing? Accessing the reliable collections within the web service should be faster, and gets us around using the Callbacks package.
Any insight is greatly appreciated.