The blueprint is an online shopping microservice application. You can treat it as a very simple C2C market like eBay.

Here is a diagram illustrating the microservice architecture:

Basic Design

Currently I designed these components:

  • account-microservice: Component for user account
  • product-microservice: Component for products we sell and buy
  • store-microservice: Component for individual stores in the market
  • checkout-microservice: Compoment for order checkout
  • payment-microservice: Compoment for payment transaction processing
  • order-microservice: Compoment for order dispatching, processing, analyzing and storage
    • NOTE: this component should be divided into several sub-components
  • recommendation-microservice: Compoment for simple recommendation for friends and favorite products with Neo4j
  • cache-infrastructure: Cache component for services
  • api-gateway: API gateway (with load balance)
  • shopping-ui: A SPA front-end for the microservice
  • monitor-dashboard: Dashboard for performance monitoring and backend metrics data demonstration

Here is the user workflow: User login and add products to chart -> Checkout -> Go to payment page and pay for the products -> Payment transaction success, order submitted -> (Wait for delivery...)

All events are sent on the event bus.