Skip to content

This project is a microservice architecture for an e-commerce platform.

Notifications You must be signed in to change notification settings

edsonwade/e-commerce-microservice

Repository files navigation

Ecommerce 🌱

Introduction 🚀

Ecommerce is a comprehensive guide and project for building modern RESTful APIs and microservices using the Spring Boot framework. This project covers a wide range of topics, from basic CRUD operations to advanced microservices architecture patterns, Dockerization, and integration with messaging systems like Apache Kafka and RabbitMQ.

Objective 🎯

The goal of Springify is to provide developers with a hands-on approach to mastering Spring Boot for building robust and scalable RESTful APIs and microservices. By following the tutorials and examples provided in this project, developers will gain practical experience in various aspects of Spring Boot development, including essential annotations, data transfer object patterns, exception handling, microservices communication, Dockerization, and more.

REST Endpoints

  1. Build REST API's using Spring Boot - Important Spring MVC Annotations 🛠️
  2. Build CRUD REST API's using Spring Boot, Spring Data JPA and MySQL Database 📦
  3. Using DTO (Data Transfer Object) Pattern in Spring Boot App 📝
  4. Using Mapping libraries - ModelMapper and MapStruct 🗺️
  5. Exception Handling in Spring Boot App
  6. Spring Boot REST API Validation
  7. Spring Boot Actuator - Production-Ready Features 🚀
  8. Building Spring Boot Microservices in IntelliJ IDEA 🏗️
  9. Microservices Communication using RestTemplate, WebClient and Cloud OpenFeign 🔄
  10. Centralized Configurations using Spring Cloud Config Server 🔄
  11. Create Service Registry and Discovery using Spring Cloud Netflix Eureka 🌐
  12. Create API Gateway using Spring Cloud Gateway 🌟
  13. Load balancing with Eureka server and Open Feign using Spring Cloud LoadBalancer ⚖️
  14. Auto Refresh Config Changes using Spring Cloud Bus 🔄
  15. Distributed Tracing with Spring Cloud Sleuth and Zipkin 🕵️‍♂️
  16. Resilience4J: Circuit Breaker, Retry and RateLimiter Patterns 🛡️
  17. How to Add Step by Step New Microservice to Existing Project 🔄
  18. Create React Frontend Microservice and Integrate with Backend Microservices 🌐
  19. Dockering Spring Boot Application Step by Step 🐳
  20. Dockering Spring Boot MySQL CRUD Application Step by Step 🐳
  21. Docker Compose for Dockering Spring Boot Application Step by Step 🐳
  22. Learn How to Use Apache Kafka in the Spring Boot App 🐘
  23. Spring Boot + Apache Kafka Real-World Wikimedia Project 📰
  24. Event-Driven Microservices using Spring boot and Kafka 📆
  25. Learn How to Use RabbitMQ in the Spring Boot App 🐇
  26. Event-Driven Microservices using Spring boot and RabbitMQ 📆
  27. REST API Documentation using SpringDoc OpenAPI (Swagger) Library 📚
  28. Migrate Existing Microservices Project into Latest Version 🔄

Stack Description

  • Spring Boot: A powerful framework for building Java-based applications quickly and with minimal configuration. It provides a wide range of features for building robust and scalable microservices.
  • Spring Data JPA: Part of the larger Spring Data project, it simplifies data access layer implementation by providing convenient abstractions over JPA (Java Persistence API).
  • MySQL Database: A popular open-source relational database management system known for its reliability and performance.
  • DTO (Data Transfer Object) Pattern: A design pattern used to transfer data between software application subsystems or between layers of a multi-layered architecture.
  • ModelMapper and MapStruct: Libraries used for mapping objects between different layers of an application, such as DTOs and domain entities.
  • Spring Cloud Config Server: A centralized configuration server for distributed systems, allowing for externalized configuration in a microservices architecture.
  • Spring Cloud Netflix Eureka: A service registry and discovery server that enables microservices to locate and communicate with each other.
  • Spring Cloud Gateway: A powerful API gateway built on top of Spring WebFlux, providing essential features like routing, filtering, and load balancing.
  • Spring Cloud LoadBalancer: Provides client-side load balancing capabilities for microservices communicating with each other via service discovery.
  • Spring Cloud Bus: Allows for the distribution of configuration changes across multiple instances of a microservice architecture.
  • Spring Cloud Sleuth and Zipkin: Distributed tracing tools for monitoring and debugging microservices-based systems.
  • Resilience4J: A fault tolerance library for Java applications, offering features like circuit breakers, retry mechanisms, and rate limiters.
  • Apache Kafka: A distributed event streaming platform that enables the building of real-time data pipelines and streaming applications.
  • RabbitMQ: A message broker that implements the Advanced Message Queuing Protocol (AMQP) and provides robust messaging for distributed systems.
  • SpringDoc OpenAPI (Swagger) Library: A library for generating API documentation directly from Spring MVC endpoints.

With Ecommerce, dive into the world of Spring Boot and microservices development, and elevate your skills to build scalable and resilient applications! 🚀

spring boot version 3 xxx

On this version you dont need to use annotation @EnableEurekaClient only on versions 2xx.

Contribution 🤝

Contributions to Springify are welcomed! If you have any improvements, additional features, or bug fixes, feel free to submit a pull request.

License

This project is licensed under the MIT License. See the LICENSE file for details.