Shorten-BackEnd: Microservicio Acortador de URLs
Backend para un servicio acortador de URLs utilizando una arquitectura de microservicios con Spring Boot y Spring Cloud.
Reto
Diseñar un acortador de URLs escalable y resiliente, separando las lógicas de escritura y lectura (patrón CQRS) y centralizando la gestión de configuración, descubrimiento de servicios y enrutamiento.
Arquitectura Técnica
Sistema de microservicios orquestado con Docker Compose. Utiliza Spring Cloud Config para configuración centralizada, Spring Cloud Eureka para el descubrimiento de servicios y Spring Cloud Gateway como punto de entrada único (API Gateway).
Características Destacadas
Servicio `write-api` para crear URLs cortas, persistiendo en MySQL con Spring Data JPA. Servicio `read-api` para resolver URLs, optimizado con caché en Redis usando Spring Data Redis. Implementación de Rate Limiting (limitación de tasa) basado en IP a nivel del API Gateway, utilizando Redis.
Impacto
El resultado es un sistema robusto donde la carga de escritura (infrecuente) no afecta el rendimiento de la lectura (muy frecuente). La arquitectura permite escalar horizontalmente cada microservicio de forma independiente según la demanda.