Java 21 Spring Boot Spring Cloud (Gateway, Eureka, Config) Spring Data JPA Spring Data Redis Docker & Docker Compose MySQL Redis Maven

Shorten-BackEnd: Microservicio Acortador de URLs

Backend para un servicio acortador de URLs utilizando una arquitectura de microservicios con Spring Boot y Spring Cloud.

Microservicios Spring Cloud Spring Boot Java Docker MySQL Redis
Mockup del proyecto Shorten-BackEnd: Microservicio Acortador de URLs

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.

Vista ampliada