Open yAOwzers opened 1 year ago
backend + frontend: a simple authentication flow, using jwttokens if possible, data aggregation if possible, API calls to submit orders (if designed asynchronously it will be a plus) Data: storing of products data AWS S3: store images data caching : storing of shopping cart items, authentication data frontend: display of products, shopping cart
Frontend: Material UI, React, HTML, CSS, Javascript Backend: Go Database: NoSQL, MongoDB Cache: Redis
RPCs between different micro-service
Here are some common microservices that are typically implemented in e-commerce applications:
Microservice | Description |
---|---|
Catalog | This microservice is responsible for managing the product catalog and providing product information to other microservices and the frontend. |
Inventory | This microservice is responsible for managing the inventory of products and providing information about product availability and stock levels to other microservices and the frontend. |
Order | This microservice is responsible for managing the order lifecycle, including order placement, payment processing, and fulfillment. |
User | This microservice is responsible for managing user accounts and authentication and authorization. |
Shipping | This microservice is responsible for managing the shipping and delivery of orders. |
Recommendation | This microservice is responsible for providing product recommendations to users based on their browsing and purchasing history. |
Search | This microservice is responsible for providing search functionality to the frontend, allowing users to search for products by name, category, or other criteria |
Review | This microservice is responsible for managing product reviews and ratings, allowing users to leave feedback and ratings on products. |
Each of these microservices should be designed to be independent, autonomous, and scalable, with clear boundaries and interfaces. They should communicate with each other using lightweight protocols such as REST or message queues, and should be deployed and managed separately. By breaking down the backend into smaller, focused microservices, the application can be more scalable, resilient, and maintainable.
Product catalog: The MVP should include a basic product catalog that allows users to view products and their details.
Shopping cart: The MVP should include a basic shopping cart that allows users to add products to their cart and proceed to checkout.
Checkout process: The MVP should include a basic checkout process that allows users to enter their shipping and billing information and complete their purchase.
User registration and authentication: The MVP should include a basic user registration and authentication system that allows users to create accounts, log in, and save their preferences and order history.
Payment integration: The MVP should include a basic payment integration that allows users to pay for their purchases securely and easily.
Basic search functionality: The MVP should include a basic search functionality that allows users to search for products by keywords or categories.
Basic product recommendations: The MVP should include a basic product recommendation system that suggests similar or complementary products to users based on their browsing and purchase history.
Basic order management: The MVP should include a basic order management system that allows the store admin to view and manage orders.
Microservices-Based Architecture in Ecommerce. https://www.scnsoft.com/ecommerce/microservices
https://solace.com/what-is-event-driven-architecture/
Key topics to understand Event broker Event portal Topics Event mesh Deferred execution Eventual consistency Choreography Command Query Responsibility Segregation
https://github.com/idugalic/micro-ecommerce
https://github.com/mehdihadeli/ecommerce-microservices
https://github.com/RainbowForest/e-commerce-microservices
https://dearsikandarkhan.medium.com/microservices-architecture-for-e-commerce-f8b49270e72f
https://hygraph.com/blog/ecommerce-microservices-architecture
Longbin
Breaking down the different parts of the requirements, the thought process should be as follows:
Requirement 1: Micro-service Architecture
Requirement 2: Volume
Last
Issues to look out for
Resources
https://medium.com/@saurabh.engg.it/developing-high-performance-applications-microservices-860cb4509d27
Quite an intense article. But most fundmental would be point 4 Microservice communication: Asynchronous (Non-Blocking) requests wherever possible