How tushar-96/order-processing-system works
This is a full-stack e-commerce application: customers register, browse products, manage carts, place orders, and track or cancel them. The React app sends API requests through the gateway to authentication, order, and inventory services. Order creation and cancellation trigger asynchronous Kafka events; inventory reserves or releases stock and returns results that update order status. The README documents the services, databases, topics, and major capabilities; some frontend and gateway internals were not sampled, so their wiring is shown only where documented or evident from the tree.
Main entry points: AppRoutes.jsx App routes · ApiGatewayApplication.java API gateway · AuthService.java Auth service · OrderServiceImpl.java Order service
Components 26
Customer app
- React app
frontend/src/App.jsx - App routes
frontend/src/routes/AppRoutes.jsx - Auth pages
frontend/src/features/auth/LoginPage.jsx - Cart
frontend/src/features/cart/CartContext.jsx - Product catalog
frontend/src/features/products/ProductCatalogPage.jsx - Order history
frontend/src/features/orders/OrderHistoryPage.jsx - HTTP client
frontend/src/api/axiosInstance.js
API gateway
- API gateway
backend/api-gateway/src/main/java/com/ecommerce/gateway/ApiGatewayApplication.java - Service fallbacks
backend/api-gateway/src/main/java/com/ecommerce/gateway/controller/ServiceFallbackController.java
Identity
- Auth API
backend/auth-service/src/main/java/com/ecommerce/auth/controller/AuthController.java - Auth service
backend/auth-service/src/main/java/com/ecommerce/auth/service/AuthService.java - Auth PostgreSQL
- JWT security
backend/auth-service/src/main/java/com/ecommerce/auth/security/JwtService.java
Orders
- Order API
backend/order-service/src/main/java/com/orderservice/controller/OrderController.java - Order service
backend/order-service/src/main/java/com/orderservice/service/impl/OrderServiceImpl.java - Order PostgreSQL
- Order event producers
backend/order-service/src/main/java/com/orderservice/kafka/OrderCreatedEventProducer.java - Inventory result handler
backend/order-service/src/main/java/com/orderservice/service/InventoryResultService.java
Catalog and stock
- Order event consumers
backend/inventory-service/src/main/java/com/ecommerce/inventory/kafka/OrderCreatedEventConsumer.java - Reservation service
backend/inventory-service/src/main/java/com/ecommerce/inventory/service/InventoryReservationService.java - Inventory PostgreSQL
- Inventory result producer
backend/inventory-service/src/main/java/com/ecommerce/inventory/kafka/InventoryResultProducer.java - Product API
backend/inventory-service/src/main/java/com/ecommerce/inventory/controller/ProductController.java - Product service
backend/inventory-service/src/main/java/com/ecommerce/inventory/service/ProductService.java
Other components
- Customer
- Apache Kafka
Connections 27
- Customer → React app: uses
- React app → App routes: renders
- App routes → Auth pages: routes to
- App routes → Cart: routes to
- App routes → Product catalog: routes to
- App routes → Order history: routes to
- HTTP client → API gateway: sends requests
- API gateway → Auth API: routes requests
- API gateway → Order API: routes requests
- API gateway → Product API: routes requests
- Auth API → Auth service: invokes
- Auth service → Auth PostgreSQL: reads and writes
- Auth service → JWT security: creates tokens
- Order API → Order service: invokes
- Order service → Order PostgreSQL: reads and writes
- Order service → Order event producers: publishes events
- Order event producers → Apache Kafka: publishes
- Apache Kafka → Order event consumers: dispatches events
- Order event consumers → Reservation service: processes events
- Reservation service → Inventory PostgreSQL: reads and writes
- Reservation service → Inventory result producer: creates result
- Inventory result producer → Apache Kafka: publishes result
- Apache Kafka → Inventory result handler: dispatches result
- Inventory result handler → Order PostgreSQL: updates order
- Product API → Product service: invokes
- Product service → Inventory PostgreSQL: reads and writes
- API gateway → Service fallbacks: uses fallback