How bootforge-dev/e-com-app works
This repository implements a microservice-based commerce backend: clients reach product, inventory, order, and payment APIs, with order operations coordinating product lookup and stock reservation or release. Product catalog maintenance/search, inventory availability and reservation lifecycle, and payment processing/refund/cancellation are distinct domain capabilities. Repositories persist each service’s domain state. The tree also includes API gateway, configuration-server, and discovery-server applications. Wiring beyond the sampled controllers and service excerpts is shown only where service roles or source evidence support it; no README was provided.
Main entry points: OrderService.java Order service · InventoryService.java Inventory service · ProductController.java Product API · InventoryController.java Inventory API
Components 23
Entry and platform
- API gateway
api-gateway/src/main/java/com/bootforge/apigateway/ApiGatewayApplication.java - Configuration server
config-server/src/main/java/com/bootforge/configserver/ConfigServerApplication.java - Service discovery
discovery-server/src/main/java/com/bootforge/discovery_server/DiscoveryServerApplication.java
Product catalog
- Product API
product-service/src/main/java/com/bootforge/productservice/controller/ProductController.java - Product service
product-service/src/main/java/com/bootforge/productservice/service/ProductService.java - Product repository
product-service/src/main/java/com/bootforge/productservice/repository/ProductRepository.java - Product data
Inventory control
- Inventory API
inventory-service/src/main/java/com/bootforge/inventory/controller/InventoryController.java - Inventory service
inventory-service/src/main/java/com/bootforge/inventory/service/InventoryService.java - Inventory repositories
inventory-service/src/main/java/com/bootforge/inventory/repository/InventoryRepository.java - Reservation repository
inventory-service/src/main/java/com/bootforge/inventory/repository/InventoryReservationRepository.java - Inventory data
Order management
- Order API
order-service/src/main/java/com/bootforge/order/controller/OrderController.java - Order service
order-service/src/main/java/com/bootforge/order/service/OrderService.java - Product client
order-service/src/main/java/com/bootforge/order/client/ProductClient.java - Inventory client
order-service/src/main/java/com/bootforge/order/client/InventoryClient.java - Order repository
order-service/src/main/java/com/bootforge/order/repository/OrderRepository.java - Order data
Payment management
- Payment API
payment-service/src/main/java/com/bootforge/payment/controller/PaymentController.java - Payment service
payment-service/src/main/java/com/bootforge/payment/service/PaymentService.java - Payment repository
payment-service/src/main/java/com/bootforge/payment/repository/PaymentRepository.java - Payment data
Other components
- API client
Connections 23
- API client → API gateway: sends requests
- API client → Product API: calls API
- API client → Inventory API: calls API
- API client → Order API: calls API
- API client → Payment API: calls API
- Product API → Product service: delegates
- Product service → Product repository: reads and writes
- Product repository → Product data: persists
- Inventory API → Inventory service: delegates
- Inventory service → Inventory repositories: reads and writes
- Inventory service → Reservation repository: tracks reservations
- Inventory repositories → Inventory data: persists
- Reservation repository → Inventory data: persists
- Order API → Order service: delegates
- Order service → Order repository: reads and writes
- Order repository → Order data: persists
- Order service → Product client: validates products
- Product client → Product API: requests product
- Order service → Inventory client: releases stock
- Inventory client → Inventory API: requests stock action
- Payment API → Payment service: delegates
- Payment service → Payment repository: reads and writes
- Payment repository → Payment data: persists