How ivaneliseodev/microservices-ecommerce works
This is a Spring Boot e-commerce microservices platform. The principal workflow places an order: the order API delegates to order processing, which checks inventory synchronously for each line before persisting and returning the order. Product catalog management and inventory administration are separate service workflows; the README also describes RabbitMQ notifications and Eureka discovery. The order implementation excerpt confirms the inventory call, while notification and discovery links are documented capabilities rather than inspected implementation details.
Main entry points: OrderServiceImpl.java Order service · ProductServiceImpl.java Catalog service · InventoryServiceImpl.java Inventory service · ProductRepository.java Product repository
Components 20
Product catalog
- Product API
product-service/src/main/java/com/ecommerce/product_service/controller/ProductController.java - Catalog service
product-service/src/main/java/com/ecommerce/product_service/service/impl/ProductServiceImpl.java - Product mapper
product-service/src/main/java/com/ecommerce/product_service/mapper/ProductMapper.java - Product repository
product-service/src/main/java/com/ecommerce/product_service/repository/ProductRepository.java - Product model
product-service/src/main/java/com/ecommerce/product_service/dto/Product.java - Sample data loader
product-service/src/main/java/com/ecommerce/product_service/dataloader/TestDataLoader.java
Order processing
- Order API
order-service/src/main/java/com/ecommerce/order_service/controller/OrderController.java - Order service
order-service/src/main/java/com/ecommerce/order_service/service/impl/OrderServiceImpl.java - Order mapper
order-service/src/main/java/com/ecommerce/order_service/mapper/OrderMapper.java - Order repository
order-service/src/main/java/com/ecommerce/order_service/repository/OrderRepository.java - Order records
order-service/src/main/java/com/ecommerce/order_service/model/Order.java
Inventory
- Inventory API
inventory-service/src/main/java/com/ecommerce/inventory_service/controller/InventoryController.java - Inventory service
inventory-service/src/main/java/com/ecommerce/inventory_service/service/impl/InventoryServiceImpl.java - Inventory mapper
inventory-service/src/main/java/com/ecommerce/inventory_service/mapper/InventoryMapper.java - Inventory repository
inventory-service/src/main/java/com/ecommerce/inventory_service/repository/InventoryRepository.java - Inventory record
inventory-service/src/main/java/com/ecommerce/inventory_service/model/Inventory.java
Platform services
- Eureka registry
discovery-server/src/main/java/com/ecommerce/discovery_server/DiscoveryServerApplication.java - Notification service
notification-service/src/main/java/com/ecommerce/notification_service/NotificationServiceApplication.java - RabbitMQ
Other components
- Client
Connections 23
- Client → Product API: requests catalog
product-service/src/main/java/com/ecommerce/product_service/controller/ProductController.java - Product API → Catalog service: delegates to
product-service/src/main/java/com/ecommerce/product_service/controller/ProductController.java - Catalog service → Product mapper: maps data
product-service/src/main/java/com/ecommerce/product_service/service/impl/ProductServiceImpl.java - Catalog service → Product repository: reads and writes
product-service/src/main/java/com/ecommerce/product_service/service/impl/ProductServiceImpl.java - Product mapper → Product model: maps model
product-service/src/main/java/com/ecommerce/product_service/service/impl/ProductServiceImpl.java - Product repository → Product model: stores
product-service/src/main/java/com/ecommerce/product_service/repository/ProductRepository.java - Sample data loader → Product repository: loads sample data
product-service/src/main/java/com/ecommerce/product_service/dataloader/TestDataLoader.java - Client → Order API: places order
order-service/src/main/java/com/ecommerce/order_service/controller/OrderController.java - Order API → Order service: delegates to
order-service/src/main/java/com/ecommerce/order_service/controller/OrderController.java - Order service → Order mapper: maps line items
order-service/src/main/java/com/ecommerce/order_service/service/impl/OrderServiceImpl.java - Order service → Inventory API: checks stock
order-service/src/main/java/com/ecommerce/order_service/service/impl/OrderServiceImpl.java - Order service → Order repository: saves and reads
order-service/src/main/java/com/ecommerce/order_service/service/impl/OrderServiceImpl.java - Order mapper → Order records: maps order data
order-service/src/main/java/com/ecommerce/order_service/service/impl/OrderServiceImpl.java - Order repository → Order records: persists
order-service/src/main/java/com/ecommerce/order_service/repository/OrderRepository.java - Client → Inventory API: manages stock
inventory-service/src/main/java/com/ecommerce/inventory_service/controller/InventoryController.java - Inventory API → Inventory service: delegates to
inventory-service/src/main/java/com/ecommerce/inventory_service/controller/InventoryController.java - Inventory service → Inventory mapper: maps records
inventory-service/src/main/java/com/ecommerce/inventory_service/service/impl/InventoryServiceImpl.java - Inventory service → Inventory repository: reads and writes
inventory-service/src/main/java/com/ecommerce/inventory_service/service/impl/InventoryServiceImpl.java - Inventory mapper → Inventory record: maps model
inventory-service/src/main/java/com/ecommerce/inventory_service/service/impl/InventoryServiceImpl.java - Inventory repository → Inventory record: persists
inventory-service/src/main/java/com/ecommerce/inventory_service/repository/InventoryRepository.java - Order service → RabbitMQ: publishes order event
README.md - RabbitMQ → Notification service: delivers event
README.md - Eureka registry → Order service: supports discovery
README.md