Dapr Retro Point of Sales (Backend Workflows) is an event-driven microservices based architecture for POS Distributed Systems Ltd., which will enable scalability with a plugable design for the next generation of cloud point of sales.
After evaluating a variety of approaches and technologies, the engineering team has decided to use technologies like .NET Core, Containers, Functions, Dapr and KEDA to enable system scalability and functionality such as reliable state, bindings, triggers, distributed tracing, secret management, service to service invocation.
These set of workflows intents to be a part of a production ready architecture, tested under heavy loads and mitigating possible scalability issues by using modern microservices practices, that can be use to learn on the road, we encourage to deploy the solution and learn on the road by exploring each component and configuration. In order to make this project achievable there are some technologies predefined, however, you can add or remove components in your own design to make it more flexible.
Attribute | Details |
---|---|
Dapr runtime version | 0.11.2 |
KEDA | 1.5.0 |
HELM | 3.2.1 |
.NET Core | 3.1 |
Azure Functions Core Tools | 3.x |
Azure CLI | 2.12.1 |
Docker Desktop | 2.4.0.0 |
Visual Studio Community 2019 or Code | Required |
Azure Subscription | Required |
Language | C# |
Environment | Local or Kubernetes |
-
- Deploy or remove all resources used by the solution with these scripts.
-
- Configure all the Kubernetes Service components used by the solution.
-
Workflow 1 - API to Queue / Queue to Function
diagram description The purpose of this workflow it's to represent an exposed API that will be receiving messages from an external worker service, these messages will be stored in the Azure Service Bus Queue and eventually they will be consumed and processed by a ServiceBusTrigger Function to finally send the results to an storage.
I want to thank to my Cloud Native Global Black Belt team (aka. Dapr Vigilantes) for this great contribution: https://github.com/azure/dapr-gbb-workshop that I used to accelerate my learning and adoption of Dapr.
I want to thank Houssem Dellai (@houssemdellai) for this great contribution: https://github.com/houssemdellai/aks-keyvault that I used to create part of the AAD Pod Identity documentation.