How abrashee/kml works
KML is an educational logistics platform spanning customer and staff interfaces and independently running backend services. Users browse/search products, manage accounts, place orders, and track shipments; staff manage inventory, warehouses, orders, shipments, and users. The README describes an API gateway, per-service persistence, and brokered domain events. The graph preserves those documented capabilities and the inventory search/projection behavior visible in sampled source; frontend-to-API wiring and detailed gateway routing were not sampled, so those links are shown only at the documented boundary.
Main entry points: ApiGatewayApplication.java API gateway · InventoryController.java Inventory · ShipmentController.java Shipments · OrderPlacedEvent.java Shared security/events
Components 19
User interfaces
- Customer UI
frontend/customer-frontend/src/App.tsx - Admin UI
frontend/admin-frontend/src/app/app.routes.ts
API edge
- API gateway
services/api-gateway/src/main/java/com/kml/services/gateway/ApiGatewayApplication.java
Logistics services
- User and auth
services/user-service/src/main/java/com/kml/user/controller/UserController.java - Orders
services/order-service/src/main/java/com/kml/services/order/controller/OrderController.java - Inventory
services/inventory-service/src/main/java/com/kml/services/inventory/controller/InventoryController.java - Product catalog
services/inventory-service/src/main/java/com/kml/services/inventory/product/ProductController.java - Warehouses
services/warehouse-service/src/main/java/com/kml/services/warehouse/controller/WarehouseController.java - Shipments
services/shipment-service/src/main/java/com/kml/services/shipment/controller/ShipmentController.java
Shared runtime
- Shared security/events
services/common/src/main/java/com/kml/services/common/events/OrderPlacedEvent.java
External systems
- User data
- Order data
- Inventory data
- Warehouse data
- Shipment data
- Event broker
- OpenSearch
Other components
- Customer
- Staff
Connections 27
- Customer → Customer UI: uses
- Staff → Admin UI: uses
- Customer UI → API gateway: API requests
- Admin UI → API gateway: API requests
- API gateway → User and auth: routes requests
- API gateway → Orders: routes requests
- API gateway → Inventory: routes requests
- API gateway → Product catalog: routes requests
- API gateway → Warehouses: routes requests
- API gateway → Shipments: routes requests
- User and auth → User data: reads/writes
- Orders → Order data: reads/writes
- Inventory → Inventory data: reads/writes
- Product catalog → Inventory data: projects catalog
- Warehouses → Warehouse data: reads/writes
- Shipments → Shipment data: reads/writes
- Inventory → OpenSearch: indexes/searches
- Product catalog → OpenSearch: indexes/searches
- Orders → Event broker: publishes order events
- Event broker → Inventory: delivers order events
- Inventory → Event broker: publishes stock events
- Event broker → Shipments: delivers reservation events
- Shipments → Event broker: publishes shipment events
- Shared security/events → User and auth: provides shared auth
- Shared security/events → Orders: provides shared auth
- Shared security/events → Inventory: provides shared auth
- Shared security/events → Shipments: provides shared auth