Source code repository for the reddog demo, brought to you by the Cloud Native Global Black Belt Team.
Перейти к файлу
asofio 4080e00cb0 Now defaulting VUE_APP_STORE_ID within Dasbhoard.vue to 'redmond'. Made change to perform case-insensitive storeId comparison when populating sales/project display metrics. Made adjustment to default page title to 'Red Dog - Redmond'. 2022-02-18 22:13:14 +00:00
.devcontainer Made version updates of node-sass and sass-loader. Updated Dockerfile to install python 2.7 dependency to allow for node-sass compilation within Codespaces. 2022-02-18 15:11:42 +00:00
.github/workflows AG: fixed GH action promote-manifests.yaml 2021-11-15 10:57:16 -07:00
.vscode Initial dev container (#42) 2021-06-14 00:07:34 -05:00
RedDog.AccountingModel update product cost and UI 2021-09-29 17:28:34 -04:00
RedDog.AccountingService Made adjustment to allow CORS. 2022-02-18 16:05:33 +00:00
RedDog.Bootstrapper Updated nuget packages. 2021-11-12 11:13:58 -06:00
RedDog.CorporateTransferService cheese 2021-05-12 11:17:40 -05:00
RedDog.LoyaltyService Updated nuget packages. 2021-11-12 11:13:58 -06:00
RedDog.MakeLineService Updated nuget packages. 2021-11-12 11:13:58 -06:00
RedDog.OrderService Updated nuget packages. 2021-11-12 11:13:58 -06:00
RedDog.ReceiptGenerationService Updated nuget packages. 2021-11-12 11:13:58 -06:00
RedDog.UI Now defaulting VUE_APP_STORE_ID within Dasbhoard.vue to 'redmond'. Made change to perform case-insensitive storeId comparison when populating sales/project display metrics. Made adjustment to default page title to 'Red Dog - Redmond'. 2022-02-18 22:13:14 +00:00
RedDog.VirtualCustomers Updated nuget packages. 2021-11-12 11:13:58 -06:00
RedDog.VirtualWorker Updated nuget packages. 2021-11-12 11:13:58 -06:00
assets AG: updated arch diag 2021-11-15 18:29:50 -07:00
docs Further wording adjustments 2022-01-13 09:09:41 -06:00
manifests Added local secrets.json 2022-01-12 23:05:13 +00:00
rest-samples updated corp charts to remove last hour 2021-06-14 14:37:41 -04:00
.dockerignore Glo kustomize (#4) 2021-05-12 14:12:33 -05:00
.gitignore Adjusted gitignore. 2022-01-12 23:05:37 +00:00
CODEOWNERS Create CODEOWNERS 2021-11-16 11:38:34 -07:00
README.md updated readme with AKS link 2022-01-06 15:12:08 -07:00
RedDog.sln Initial cut of the AccountingService. Initial cut of the Bootstrapper. 2021-05-05 02:36:36 -05:00

README.md

Red Dog Demo - Azure Application Innovation Scenario

Background

Microservices can be hard. But, while being exceedingly difficult to architect they have become an increasingly popular architecture pattern. As developers begin to migrate their existing monolithic codebases to a microservices system, they spend a lot of their time dealing with the inherent challenges presented by distributed applications, such as state management and service invocation.

Enter Dapr - The Distributed Application Runtime built with developers in mind. Dapr aims to solve some of these microservice-related challenges by providing consistent building blocks in the form of http/gRPC APIs that can be called natively or using one of the dapr language SDKs.

This comprehensive code repository was created as a resource for software developers who are looking to gain a deeper understanding of how to build cloud-native, distributed applications powered by dapr. The codebase can be run on your local development machine or deployed to a container hosting platform of your choosing. In an effort to help you best leverage the codebase, we have also created a series of examples showcasing how to deploy the app using key services and capabilities of the Azure platform. The deployment options we have developed thus far are detailed in the section below.

Deployment Options

Below are some example scenarios for deploying the application. Each scenario is in its own repo.

Architecture Diagram and Service Descriptions

The reddog application is developed with .NET and Javascript. As mentioned above, it utilizes Dapr (Distributed Application Runtime) so it can easily be adapted to multiple scenarios.

Logical Application Architecture Diagram

Service Description
AccountingService Service used to process, store and aggregate order data, transforming customer orders into meaningful sales metrics that can be showcased via the UI
Bootstrapper A service that leverages Entity Framework Core Migrations to initialize the tables within Azure SQL DB based on the data model found in Reddog.AccountingModel
LoyaltyService Manages the loyalty program by modifying customer reward points based on spend
MakeLineService Responsible for simulating and coordinating a 'queue' of current orders. Monitors the processing and completion of each order in the 'queue'
OrderService Basic CRUD API that is used to place and manage orders
ReceiptGenerationService Archival program that generates and stores order receipts for auditing and historical purposes
UI Dashboard showcasing order/sales data related to a single hub location and/or for visibility across Hubs via the Corporate Dashboard in Hybrid scenario
VirtualCustomers 'Customer simulation' program that simulates customers placing orders
VirtualWorker 'Worker simulation' program that simulates the completion of customer orders
CorporateTransferService* Azure Function responsible for monitoring order activity via RabbitMQ i.e. order placement and order completion within the context of a specific hub location and propogating these order activities to an Azure Service Bus for Corporate Hub consumption and visibility

*These services are specific to the Hybrid retail scenario and may not be applicable for other deployment patterns

Contributing

This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.opensource.microsoft.com.

When you submit a pull request, a CLA bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.