How hardikjain3012/order-inventory-microservices-assignment works
This is a Spring Boot order-and-inventory system: a customer submits an order, the Order Service processes it and checks availability through the Inventory Service REST API, while inventory endpoints expose product and batch management. The inventory API also supports strategy-selected stock queries and updates. The graph includes the repository’s service, repository, and entity layers, but source excerpts for their internal calls were not provided, so those links are omitted where wiring cannot be verified.
Main entry points: InventoryController.java Inventory API · OrderController.java Order API · OrderServiceImpl.java Order processing · InventoryServiceImpl.java Inventory adapter
Components 23
Order service
- Order API
order-service/src/main/java/com/korber/order/controller/OrderController.java - Order processing
order-service/src/main/java/com/korber/order/service/OrderServiceImpl.java - Inventory adapter
order-service/src/main/java/com/korber/order/service/InventoryServiceImpl.java - REST client
order-service/src/main/java/com/korber/order/configuration/InventoryClient.java - Order repositories
order-service/src/main/java/com/korber/order/repository/OrderRepository.java - Order-item repository
order-service/src/main/java/com/korber/order/repository/OrderItemRepository.java - Order records
order-service/src/main/java/com/korber/order/entity/Order.java
Inventory service
- Inventory API
inventory-service/src/main/java/com/korber/inventory/controller/InventoryController.java - Strategy factory
inventory-service/src/main/java/com/korber/inventory/factory/InventoryServiceFactory.java - Inventory operations
inventory-service/src/main/java/com/korber/inventory/service/InventoryServiceImpl.java - Product API
inventory-service/src/main/java/com/korber/inventory/controller/ProductController.java - Product operations
inventory-service/src/main/java/com/korber/inventory/service/ProductServiceImpl.java - Batch API
inventory-service/src/main/java/com/korber/inventory/controller/BatchController.java - Batch operations
inventory-service/src/main/java/com/korber/inventory/service/BatchServiceImpl.java
Persistence
- Product repository
inventory-service/src/main/java/com/korber/inventory/repository/ProductRepository.java - Batch repository
inventory-service/src/main/java/com/korber/inventory/repository/BatchRepository.java - Product and batch
inventory-service/src/main/java/com/korber/inventory/entity/Product.java - Order H2 database
order-service/src/main/resources/application.properties - Inventory H2 database
inventory-service/src/main/resources/application.properties
API support
- Error mapping
order-service/src/main/java/com/korber/order/exceptions/OrderExceptionHandler.java - Inventory errors
inventory-service/src/main/java/com/korber/inventory/exceptions/InventoryExceptionHandler.java
Other components
- Customer
- Inventory REST API
Connections 14
- Customer → Order API: submits order
- Order API → Order processing: places order
- Order processing → Inventory adapter: checks stock
- Inventory adapter → REST client: uses client
- REST client → Inventory REST API: REST request
- Inventory REST API → Inventory API: reaches endpoint
- Inventory API → Strategy factory: selects strategy
- Inventory API → Inventory operations: runs operation
- Inventory API → Customer: returns inventory data
- Customer → Inventory API: manages inventory
- Customer → Product API: manages products
- Product API → Product operations: runs product operation
- Customer → Batch API: manages batches
- Batch API → Batch operations: runs batch operation