FarmWise

El problema
FarmWise ofrece a los granjeros herramientas para gestionar sus recintos y animales, reservar citas con asesores y leer sus publicaciones. Comenzó como un único backend en Spring Boot que cubría todas esas áreas. Luego lo reconstruimos como servicios separados, para que cada dominio pudiera ejecutarse y escalar por su cuenta.
Decisiones clave
- Dividimos el backend en servicios de IAM, perfiles, citas, gestión y publicaciones, cada uno con su propia base de datos.
- Añadimos Eureka para el descubrimiento de servicios, un API Gateway como punto único de entrada y un servicio de configuración que lee de un repositorio aparte.
- Reenviamos el JWT del usuario en las llamadas entre servicios, porque esas peticiones fallaban al añadir seguridad a cada microservicio.
- Levantamos dos instancias de cada servicio de dominio en una configuración de Docker Compose para producción.
El resultado
El monolito se convirtió en cinco servicios de dominio más los de descubrimiento, gateway y configuración, conectados a un frontend en Angular. El equipo también añadió pruebas unitarias y escribió pruebas de aceptación para las historias de usuario de cinco épicas.