Patrones y documentacion UTIL - RickContreras/telconova-supportsuite-tracking-service GitHub Wiki
Patrón | Descripción y cómo aplicarlo aquí |
---|---|
Repository | Encapsula el acceso a datos (JPA, SQL) en interfaces limpias. 👉 AvanceRepository, EvidenciaRepository. |
Service Layer | Lógica de negocio central. 👉 AvanceService debería contener validaciones y orquestación. |
DTO (Data Transfer Object) | Separa entidad y payload de entrada/salida REST o WS. 👉 AvanceRequestDTO, AvanceResponseDTO. |
Event Publisher (Pub/Sub) | Permite emitir eventos como avance.registrado, usando RabbitMQ. |
Strategy (opcional) | Para elegir backend de almacenamiento (MinIO, S3, Azure). 👉 StorageService con varias implementaciones. |
Mapper | Conversión entre DTO y entidades. 👉 AvanceMapper con MapStruct o manual. |
Builder (opcional) | Para construir objetos complejos como AvanceNotification. |
Circuit Breaker / Retry | Para evitar fallos cuando usas dependencias externas (S3, RabbitMQ). Usa Resilience4j. |
Decorator (opcional) | Para enriquecer funciones como envío de métricas o logs en servicios. |
-
🔗 12 Factor App – Principios fundamentales para microservicios
-
🔗 Microservice Patterns by Chris Richardson – Catálogo excelente de patrones y anti-patrones
-
🔗 RabbitMQ + Spring Boot – Enviar y recibir eventos
-
🔗 eugenp/tutorials – Código Baeldung completo