How sanimanqezu/spring-boot-microservices works
This is a Spring Cloud inventory-management system with an Angular GUI, an API gateway, and independently responsible user, product, order, and address services. The principal workflow is a user managing domain records in the GUI: domain screens call API clients, which send requests through the shared request layer to the gateway and then to the relevant backend service. The README documents service discovery, centralized configuration, and PostgreSQL persistence; sampled source confirms GUI request wiring and the Orders and Users Feign clients. Backend implementation details and exact database wiring were not sampled.
Main entry points: GatewayServiceApplication.java API Gateway · ConfigServerApplication.java Config Server · OrdersController.java Orders service · UsersController.java Users service
Components 17
Inventory GUI
- Domain screens
services/InventoryGUI/src/app/components - Domain API clients
services/InventoryGUI/src/app/services - HTTP request layer
services/InventoryGUI/src/app/services/request-service/request.service.ts - Error notifications
services/InventoryGUI/src/app/services/httpInterceptor-service/http-interceptor.service.ts
API Entry
- API Gateway
services/GatewayService/src/main/java/com/example/GatewayService/GatewayServiceApplication.java
Business Services
- Users service
services/Users/src/main/java/za/co/example/controllers/UsersController.java - Products service
services/Products/src/main/java/za/co/example/controllers/ProductsController.java - Orders service
services/Orders/src/main/java/za/co/example/controllers/OrdersController.java - Addresses service
services/Addresses/src/main/java/za/co/example/controllers/AddressesController.java - Users database
- Products database
- Orders database
- Addresses database
Cloud Platform
- Eureka registry
services/EurekaServer/src/main/java/com/example/EurekaServer/EurekaServerApplication.java - Config Server
services/ConfigServer/src/main/java/com/example/ConfigServer/ConfigServerApplication.java
Other components
- Inventory user
- PostgreSQL
Connections 31
- Inventory user → Domain screens: uses
- Domain screens → Domain API clients: calls
- Domain API clients → HTTP request layer: sends requests
- HTTP request layer → API Gateway: HTTP requests
- API Gateway → Users service: routes requests
- API Gateway → Products service: routes requests
- API Gateway → Orders service: routes requests
- API Gateway → Addresses service: routes requests
- HTTP request layer → Error notifications: errors reach
- Orders service → Products service: Feign calls
- Orders service → Users service: Feign calls
- Users service → Addresses service: Feign calls
- Users service → Users database: persists data
- Products service → Products database: persists data
- Orders service → Orders database: persists data
- Addresses service → Addresses database: persists data
- Users database → PostgreSQL: stored in
- Products database → PostgreSQL: stored in
- Orders database → PostgreSQL: stored in
- Addresses database → PostgreSQL: stored in
- Users service → Eureka registry: registers
- Products service → Eureka registry: registers
- Orders service → Eureka registry: registers
- Addresses service → Eureka registry: registers
- API Gateway → Eureka registry: discovers services
- Config Server → Users service: provides configuration
- Config Server → Products service: provides configuration
- Config Server → Orders service: provides configuration
- Config Server → Addresses service: provides configuration
- Config Server → API Gateway: provides configuration
- Config Server → Eureka registry: provides configuration