Esta guia refleja el estado actual real del repositorio (microservicios separados).
El repositorio contiene 4 microservicios Spring Boot y recursos compartidos para orquestacion local:
order-service: API principal de ordenes y productos. Implementa arquitectura limpia, CQRS-lite (Mediator), eventos de dominio, seguridad JWT y resiliencia para llamadas entre servicios.inventory-service: Gestion de inventario.shipping-service: Gestion de envios.auth-service: Registro/login y validacion de credenciales/JWT.
Infraestructura compartida:
docker-compose.yml: levanta PostgreSQL + los 4 microservicios + Zipkin + Prometheus.init-db.sql: creainventory_db,shipping_db,auth_db(la DBorder_dbse crea por variablePOSTGRES_DB).prometheus.yml: scraping de metricas.k8s/: manifiestos base para despliegue.CLOUD_MIGRATION_GUIDE.md: pasos para nube/event bus gestionado.
.
├── auth-service/
│ ├── pom.xml
│ ├── Dockerfile
│ └── src/
├── inventory-service/
│ ├── pom.xml
│ ├── Dockerfile
│ └── src/
├── order-service/
│ ├── pom.xml
│ ├── Dockerfile
│ └── src/
├── shipping-service/
│ ├── pom.xml
│ ├── Dockerfile
│ └── src/
├── k8s/
├── docker-compose.yml
├── init-db.sql
├── prometheus.yml
└── pom.xml # agregador Maven (packaging=pom)
Nota importante: ahora order-service ya no vive en la raiz del repo; esta completamente separado dentro de order-service/.
pom.xmlen la raiz es agregador y declara modulos:auth-serviceinventory-serviceorder-serviceshipping-service
- Cada servicio mantiene su propio
pom.xmlconspring-boot-starter-parent.
Comandos utiles:
# Compilar todo el workspace
mvn clean verify
# Compilar un servicio puntual
mvn -pl order-service clean verify
mvn -pl auth-service clean verifyServicios publicados:
order-service->localhost:8080inventory-service->localhost:8081shipping-service->localhost:8082auth-service->localhost:8083postgres->localhost:5432zipkin->localhost:9411prometheus->localhost:9090
Flujo de red:
order-serviceatiende requests externos.order-serviceconsulta/invoca ainventory-service,shipping-serviceyauth-servicepor HTTP interno.- Todos persisten en PostgreSQL (bases separadas por servicio).
- Actuator + Micrometer exponen metricas para Prometheus.
- Trazas distribuidas se envian a Zipkin.
Comandos utiles:
docker compose up --build -d
docker compose logs -f order-service
docker compose down
docker compose down -vorder-service es el servicio mas completo y aplica una version de Clean Architecture:
domain: entidades y enums de negocio.application: DTOs, mediador (commands/queries/handlers), eventos, validadores y servicios de aplicacion.infrastructure: repositorios JPA, seguridad JWT, clientes HTTP, config, resiliencia y event bus Spring.interfaces: controladores REST y manejo global de excepciones (ProblemDetail).
Flujo tipico:
HTTP Request -> Controller -> Mediator -> Handler -> Repository
-> EventBus -> Listener
auth-serviceautentica usuarios y emite/valida JWT.order-serviceprotege endpoints con Spring Security + filtro JWT.order-serviceusa URLs configurables parainventory,shippingyauth.
Variables y propiedades relevantes estan en los application.yml de cada servicio.
- Actuator habilitado para health/metrics/prometheus.
- Zipkin para trazas.
- Prometheus para metricas.
- Niveles de log configurados por servicio.
Cada microservicio incluye src/test y profile de test (application-test.yml) con H2 para pruebas aisladas.
Esta guia fue actualizada para alinear:
- estructura de carpetas real,
- build multi-modulo,
- compose multi-servicio,
- separacion fisica de
order-serviceen su propio directorio.