Spring Boot 4: Arquitectura de Microservicios
Course Description
Este curso está diseñado para desarrolladores Java que quieren entender y construir microservicios con Spring Boot 4, aplicando criterios de arquitectura, buenas prácticas y herramientas utilizadas en proyectos profesionales.
A lo largo del curso no solo aprenderás qué hacer, sino por qué se toman ciertas decisiones técnicas al diseñar APIs y sistemas distribuidos. Partimos desde una base sólida —configuración del entorno, estructura de proyectos profesional y fundamentos de microservicios— para luego avanzar hacia la construcción de servicios completos y desacoplados.
En las primeras secciones desarrollamos un Product Service como núcleo del sistema, utilizando Spring Boot 4, MongoDB y Docker, evitando dependencias innecesarias en el entorno local. Aprenderás a organizar el código en capas claras (Controller, Service, Repository y Model), aplicar MapStruct para el mapeo entre entidades y DTOs, y manejar errores de forma moderna mediante Global Controller Advice y ProblemDetail (RFC 7807).
El curso pone especial énfasis en diseño limpio y mantenible: separación de responsabilidades, validación de datos, inyección de dependencias por constructor, logging estructurado y manejo de errores profesional.
A medida que el proyecto evoluciona, incorporamos los componentes clave de una arquitectura de microservicios real:
Config Server para configuración centralizada
Eureka para Service Discovery
API Gateway como punto de entrada único
Comunicación síncrona con WebClient y HTTP Interfaces
La resiliencia se implementa con Resilience4j (Circuit Breaker, Retry, Timeout), y la comunicación asíncrona con RabbitMQ, incluyendo el patrón Saga para transacciones distribuidas, Dead Letter Queues y Transactional Outbox para garantizar consistencia eventual.
La seguridad se implementa con OAuth2, JWT y Keycloak como Identity Provider, incluyendo Token Relay, verificación de identidad con Gmail y control de acceso basado en roles.
Para observabilidad, utilizamos el stack moderno: OpenTelemetry para instrumentación, Prometheus para métricas y Grafana para visualización y monitoreo (LGTM Stack).
Finalmente, desplegamos todo el sistema con Docker Compose y Kubernetes (Minikube), migrando de Eureka a service discovery nativo de Kubernetes, simulando un entorno de producción real. El curso también incluye Virtual Threads de Java 21 para mejorar el rendimiento en escenarios de alta concurrencia.