How hamilton2959/e_commerce_microservice works
This repository is a Java microservices e-commerce application. The main order workflow accepts an order, checks the customer, purchases products, saves the order and its lines, requests payment, and publishes an order confirmation. Product and customer services also expose independent management operations; payment emits a notification, and a notification service handles email and notification persistence. The source index and excerpts support the order and service-layer calls shown; notification-consumer wiring and platform routing details were not sampled, so those connections are omitted.
Main entry points: OrderService.java Order workflow · PaymentService.java Payment service · OrderController.java Order API · OrderLineService.java Order lines
Components 26
Order management
- Order API
services/order/src/main/java/com/hamilton/e_commerce/order/OrderController.java - Order workflow
services/order/src/main/java/com/hamilton/e_commerce/order/OrderService.java - Order records
services/order/src/main/java/com/hamilton/e_commerce/order/OrderRepository.java - Order lines
services/order/src/main/java/com/hamilton/e_commerce/orderline/OrderLineService.java - Order line records
services/order/src/main/java/com/hamilton/e_commerce/orderline/OrderLineRepository.java - Order publisher
services/order/src/main/java/com/hamilton/e_commerce/kafka/OrderProducer.java
Customer and products
- Customer API
services/customer/src/main/java/com/hamilton/e_commerce/customer/CustomerController.java - Customer service
services/customer/src/main/java/com/hamilton/e_commerce/customer/CustomerService.java - Customer records
services/customer/src/main/java/com/hamilton/e_commerce/customer/CustomerRepository.java - Customer client
services/order/src/main/java/com/hamilton/e_commerce/customer/CustomerClient.java - Product API
services/product/src/main/java/com/hamilton/ecommerce/product/ProductController.java - Product service
services/product/src/main/java/com/hamilton/ecommerce/product/ProductService.java - Product records
services/product/src/main/java/com/hamilton/ecommerce/product/ProductRepository.java - Product client
services/order/src/main/java/com/hamilton/e_commerce/product/ProductClient.java
Payment processing
- Payment client
services/order/src/main/java/com/hamilton/e_commerce/payment/PaymentClient.java - Payment API
services/payment/src/main/java/com/hamilton/e_commerce/payment/PaymentController.java - Payment service
services/payment/src/main/java/com/hamilton/e_commerce/payment/PaymentService.java - Payment records
services/payment/src/main/java/com/hamilton/e_commerce/payment/PaymentRepository.java - Payment notifier
services/payment/src/main/java/com/hamilton/e_commerce/notification/NotificationProducer.java
Notifications
- Event consumer
services/notification/src/main/java/com/hamilton/e_commerce/kafka/NotificationsConsumer.java - Email service
services/notification/src/main/java/com/hamilton/e_commerce/email/EmailService.java - Notification records
services/notification/src/main/java/com/hamilton/e_commerce/notification/NotificationRepository.java
Service platform
- Config server
services/config-server/src/main/java/com/hamilton/config_server/ConfigServerApplication.java - Service discovery
services/discovery/src/main/java/com/hamilton/discovery/DiscoveryApplication.java - API gateway
services/gateway/src/main/java/com/hamilton/gateway/GatewayApplication.java
Other components
- API client
Connections 19
- API client → Order API: submits orders
services/order/src/main/java/com/hamilton/e_commerce/order/OrderController.java - Order API → Order workflow: delegates to
services/order/src/main/java/com/hamilton/e_commerce/order/OrderController.java - Order workflow → Customer client: checks customer
services/order/src/main/java/com/hamilton/e_commerce/order/OrderService.java - Customer client → Customer API: requests customer
- Order workflow → Product client: purchases products
services/order/src/main/java/com/hamilton/e_commerce/order/OrderService.java - Product client → Product API: posts purchase
services/order/src/main/java/com/hamilton/e_commerce/product/ProductClient.java - Product API → Product service: delegates to
services/product/src/main/java/com/hamilton/ecommerce/product/ProductController.java - Order workflow → Order records: saves order
services/order/src/main/java/com/hamilton/e_commerce/order/OrderService.java - Order workflow → Order lines: saves lines
services/order/src/main/java/com/hamilton/e_commerce/order/OrderService.java - Order lines → Order line records: saves lines
services/order/src/main/java/com/hamilton/e_commerce/orderline/OrderLineService.java - Order workflow → Payment client: requests payment
services/order/src/main/java/com/hamilton/e_commerce/order/OrderService.java - Payment client → Payment API: requests payment
- Payment API → Payment service: delegates to
services/payment/src/main/java/com/hamilton/e_commerce/payment/PaymentController.java - Payment service → Payment records: saves payment
services/payment/src/main/java/com/hamilton/e_commerce/payment/PaymentService.java - Payment service → Payment notifier: sends notification
services/payment/src/main/java/com/hamilton/e_commerce/payment/PaymentService.java - Order workflow → Order publisher: publishes confirmation
services/order/src/main/java/com/hamilton/e_commerce/order/OrderService.java - Customer API → Customer service: delegates to
services/customer/src/main/java/com/hamilton/e_commerce/customer/CustomerController.java - Customer service → Customer records: reads and writes
services/customer/src/main/java/com/hamilton/e_commerce/customer/CustomerService.java - Product service → Product records: reads and writes
services/product/src/main/java/com/hamilton/ecommerce/product/ProductService.java