Giter Site home page Giter Site logo

musicstore's Introduction

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

musicstore's People

Contributors

dtillman avatar hananiel avatar timhess avatar ccheetham avatar dgodd avatar ddieruf avatar spring-operator avatar conradcreel avatar drnic avatar bottkars avatar mhoran avatar korser1 avatar

Watchers

Aren Harutyunyan avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.