I’m attempting to design a solution using ASP.Net/Blazor for a web app that can handle the follow use cases, and I’m seeking some design/best practice advice (or at lest confirm that is is possible):
- There is a process that has a list of steps that is required to be completed concurrently by two separate parties in different locations (party 1 completes steps 1-3, then party 2 completes steps 4 and 5, then party 1 continues with steps 6-10, etc).
- Both parties must see confirmation of the steps being completed as they occur (live update)
- Sometimes, one party will not have a data connection and will continue with their steps in the process on their own. Each step still has to be logged complete as it occurs (DateTime stamp – local storage?)
- On re-establishing a data connection, the completed steps should automatically be pushed to the other party (and db storage).
My initial question is: is this possible and what would be a suitable solution layout?
I thought having something like a Blazor web app with the ability to “select” Server Side Rendering if it was available, but fall back to WASM on dropped connection; reconnecting to Server Side Rendering when connection is re-established might be achievable… But this doesn’t seem to be the case.
My other line of thought was to use a ASP.Net Web API that can use process both HTTP and Web socket requests, and a subsequent client app that favors web sockets if they are available and reverts to HTTP on dropped connection.
I’m also keen to hear any recommendations for other stacks that could achieve this. I have only favored ASP.Net/Blazor because I’m stronger in C# than any other language, but I will learn whatever I need to if it is a better option.
Any guidance in the right general direction would be greatly appreciated. Thanks in advance.