Stores the information about the user, favorite products (related to product by productId), payment info, shopping history. User can add comments in review.
The Catalog consists of categorized products. Products can be in one ore more categories, and category can contain one ore more products.
Review is entity(document) related to product by productId and to customer(user) by userName.
Stores the items in the user's shopping cart and retrieves it.
Charges the given credit card info (mock) with the given amount and returns a transaction ID.
Implementation of an API gateway that is the single entry point for all clients. The API gateway handles requests in one of two ways. Some requests are simply proxied/routed to the appropriate service. It handles other requests by fanning out to multiple services.
Netflix Eureka is a service registry. It provides a REST API for service instance registration management and for querying available instances. Netflix Ribbon is an IPC client that works with Eureka to load balance requests across the available service instances.
When using client-side discovery, the client is responsible for determining the network locations of available service instances and load balancing requests across them. The client queries a service registry, which is a database of available service instances. The client then uses a load balancing algorithm to select one of the available service instances and makes a request.
Get - User info (userId) Post - create new user
Get - favorite products list from Catalog by given productIds Post/Delete - favorite product Get - payment info from PAYMENT service by userId Get - personal published product list
Get - all categories Get - all products (filtering included by category/user/review etc) Get - product by productId Post - add new product / edit existing product by productId
Get - reviews from Review service by productId
POST - new review DELETE - review
GET - all reviews by productId
POST/DELETE - productId GET - All products from shopping cart by userId
Get PRODUCTS INFO by productIds from Catalog service (name, price, photo)
Charges the given credit card info (mock) with the given amount and returns a transaction ID.
POST - charge the money from card GET/POST - wallet status
GET - wallet info by userId
Java 8 Spring Boot Maven Netflix Eureka Client/Server SQL Database engine : Microsoft SQL 2016 NOSQL Database engine : Redis 3.2.100