Samples/MusicStore
Tim Hess e4ebdec57a manifest tweaks 2022-04-11 18:13:50 -04:00
..
.config Music Store: 2019-09-11 16:35:20 -04:00
deployment Musicstore instructions and yml need updating #179 #180 (#181) 2020-12-02 14:16:26 -05:00
src manifest tweaks 2022-04-11 18:13:50 -04:00
.dockerignore Music Store: 2019-09-11 16:35:20 -04:00
.gitignore gitignore 2019-10-02 10:15:59 -04:00
MusicStore.sln MusicStore sample unify, add .NET 6 2022-03-03 08:20:53 -05:00
README-CloudFoundry.md Music store updates, polish, add Tye 2020-10-28 11:20:07 -04:00
README.md Musicstore instructions and yml need updating #179 #180 (#181) 2020-12-02 14:16:26 -05:00
docker-compose.dcproj Music Store: 2019-09-11 16:35:20 -04:00
docker-compose.override.yml MusicStore sample unify, add .NET 6 2022-03-03 08:20:53 -05:00
docker-compose.yml Musicstore instructions and yml need updating #179 #180 (#181) 2020-12-02 14:16:26 -05:00
nuget.config nuget.config updates 2022-04-11 15:40:02 -04:00
runMusicStore.cmd Music Store: 2019-09-11 16:35:20 -04:00
runMusicStoreService.sh update music store scripts and readme to use netcoreapp2.1 2018-05-29 08:08:40 -05:00
runMusicStoreUI.sh update music store scripts and readme to use netcoreapp2.1 2018-05-29 08:08:40 -05:00
runOrderService.sh update music store scripts and readme to use netcoreapp2.1 2018-05-29 08:08:40 -05:00
runShoppingCartService.sh update music store scripts and readme to use netcoreapp2.1 2018-05-29 08:08:40 -05:00
tye.yaml Musicstore instructions and yml need updating #179 #180 (#181) 2020-12-02 14:16:26 -05:00

README.md

Steeltoe MusicStore Sample Application

This repo tree contains a sample app illustrating how to use all of the Steeltoe components together in a ASP.NET Core application. This application is based on the ASP.NET Core reference app MusicStore provided by Microsoft.

In creating this application, we took the Microsoft reference application and broke it up into multiple independent services:

  • MusicStoreUI - provides the UI to the MusicStore application and all of its services.
  • MusicStoreService - provides a RESTful API to the MusicStore and its backend Music database.
  • OrderService - provides a RESTful API for Order processing service and its backend Order database.
  • ShoppingCartService - provides a RESTful api to a ShoppingCart service and its backend ShoppingCart database.

Note: The OrderService and ShoppingCartService are independent from the Music application and could be used in any other application requiring those basic services.

This application makes use of the following Steeltoe components:

  • Spring Cloud Config Server Client for centralized application configuration
  • Spring Cloud Eureka Server Client for service discovery
  • Steeltoe Connector for connecting to MySql using EFCore
  • Steeltoe CircuitBreaker to help prevent cascading failures from lower level service failures
  • Steeltoe Management for enabling management actuator endpoints
  • Spring Boot Admin for interacting with management actuators and viewing detailed service status
  • Steeltoe Redis Connector to connect to a Redis cache for Session storage. Note: This is required if you want to scale the MusicStoreUI component to multiple instances.
  • Steeltoe Redis DataProtection provider to the cause the DataProtection KeyRing to be stored in a Redis cache. Note: This is also required if you want to scale the MusicStoreUI component to multiple instances.
  • Optionally uses Hystrix Dashboard for monitoring Circuit Breakers

Usage of Redis for Session storage DataProtection KeyRing storage is controlled by the environment variable USE_REDIS_CACHE for MusicStoreUI. This variable is not set if you run the project directly or with Docker Compose, but is enabled when using Project Tye

Getting Started

Using Docker compose

  1. cd Samples/MusicStore
  2. docker-compose up

Using Project Tye

  1. Install Tye
  2. cd Samples/MusicStore
  3. tye run
  4. Browse to the local Tye dashboard to see the status of all the services and find the URL of the Music Store UI

Cloud Foundry

See the Cloud Foundry readme

Other Platforms

Review the resources in the deployment folder for templates and scripts for deploying to other platforms like Kubernetes