This demo project demonstrates various ways of implementing the Saga/Workflow design pattern in Azure.
The use case is the same and it is pretty basic: we build a stateful service, that handles organizing appointments with multiple participants. Participants communicate with the service via a client web UI and can submit appointment proposals, accept and/or decline them. The service takes care of maintaining the appointment state and notifies participants about state changes.
-
LetsGoOutDemo.React - a React+MobX+TypeScript simple web UI, that communicates with the backend and with Azure SignalR Service.
-
LetsGoOutDemo.React-Native - a React Native (more precisely, Expo) mobile app, that communicates with the backend and with Azure SignalR Service.
-
LetsGoOutDemo.Functions - backend implemented with Azure Durable Functions (C#).
-
LetsGoOutDemo.DurableEntities - backend implemented with Azure Durable Entities (C#).
-
LetsGoOutDemo.ServiceFabric - backend implemented with Service Fabric Reliable Actors.
-
LetsGoOutDemo.AspNetCore - backend implemented with pure Asp.Net Core and Redis Cache.
Appointment state change notifications are sent via Azure SignalR Service.