
La conferencia Codemotion Madrid 2025, que se celebrará los días 20 y 21 de mayo en el espacio MEEU de la Estación de Atocha, es un evento hecho por y para desarrolladores de software.
Por lo tanto, y cómo no podría ser de otra forma, no pueden faltar las ponencias especializadas y dirigidas a mejorar las habilidades y conocimientos de estos profesionales. Y mucho mejor si son en modalidad Live Coding como la que os presentamos hoy.
En “¡¡Esas llamadas a una API podrían haber sido un JOIN!!” Iván García Sainz-Aja, Software Engineer en Izertis, nos explicará cómo utilizar Spring Modulith Events para crear arquitecturas que sigan los principios Event-Driven dentro de un monolito modular. Se trata de una de esas ponencias que pueden cambiar la perspectiva a la hora de diseñar y construir la arquitectura de nuestros softwares
Contexto de la charla
En la actualidad, la complejidad del desarrollo de software ha ido aumentando progresivamente con la incorporación de nuevas tecnologías.
El crecimiento acelerado de integraciones, el cloud computing, la adopción de arquitecturas de microservicios y la presión por ofrecer resultados inmediatos han generado un entorno técnico cada vez más desafiante.
Una buena arquitectura de software es aquella que nos permita acomodar los requisitos actuales y de futuro sin necesidad de hacer malabares, ni más ni menos.
Y aunque las arquitecturas distribuidas han demostrado ser una gran solución para muchos casos de uso, también han introducido una complejidad adicional que no siempre está justificada.
No hay duda de que las arquitecturas distribuidas Event-Driven están transformando la forma en que construimos sistemas escalables y resilientes. La pregunta que nos debemos hacer es: ¿realmente necesitamos una arquitectura distribuida para resolver nuestro problema?
Y es que, aunque ofrece muchas ventajas, la distribución temprana en microservicios puede convertirse en fuente de gran complejidad accidental, creando sistemas complicados y difíciles de gestionar. Porque separar servicios es muy sencillo y práctico, pero volver a unificarlos es muy complejo.
Y si lo hacemos de una forma demasiado temprana, se vuelve complicado predecir si la decisión de separar los servicios fue la correcta. La fragmentación del modelo y límites de dominio mal definidos pueden resultar en el temible escenario de «Todas esas llamadas a una API podrían haber sido un join a una BBDD”.
¿Pero entonces, existe otra alternativa?
Arquitecturas Event-Driven y Monolitos Modulares con Spring Modulith Events
En muchas ocasiones, y en contraposición a la tendencia de dividir prematuramente el software en microservicios, un monolito bien diseñado y modular puede ser una solución más efectiva y mantenible. Esto permite crear un modelo más flexible, facilitando su evolución y refactorización, así como retrasar la transición a microservicios hasta que el dominio esté más maduro.
Y esto es precisamente lo que permite Spring Modulith Events: una librería que facilita la implementación de arquitecturas Event-Driven dentro de un monolito modular.
Esta herramienta permite organizar el software en módulos independientes que pueden evolucionar de manera aislada, garantizando la coherencia del sistema sin sacrificar la escalabilidad futura.
Con Spring Modulith Events, podemos aprovechar los beneficios de la comunicación basada en eventos mientras mantenemos la simplicidad y cohesión de un monolito. A medida que se comprende mejor el dominio, se pueden externalizar eventos y usar AsyncAPI para documentar y estabilizar dichas integraciones.
Esta característica permite a los equipos evolucionar gradualmente hacia una arquitectura más distribuida cuando sea realmente necesario y sin la necesidad de comprometer la integridad y mantenibilidad del sistema en el proceso.
Spring Modulith Events proporciona la flexibilidad necesaria para adaptar la arquitectura a medida que los requisitos del negocio cambian, manteniendo siempre un equilibrio entre la complejidad y la funcionalidad.
La charla: ¡¡Esas llamadas a una API podrían haber sido un JOIN!!
En esta charla, Iván García Sainz-Aja nos mostrará cómo Spring Modulith Events puede ser la solución que estamos buscando para construir sistemas modulares y mantenibles.
A través de ejemplos prácticos y casos de uso reales, veremos cómo podemos implementar una arquitectura Event-Driven dentro de un monolito sin caer en la complejidad innecesaria de los microservicios prematuros.
La sesión incluirá demostraciones en vivo de cómo configurar y utilizar Spring Modulith Events de manera sencilla. La charla no solo proporcionará un marco teórico sólido, sino también ejemplos tangibles que demuestran los beneficios de las arquitecturas orientadas a eventos y modulares, sin necesidad de fragmentar nuestro software antes de tiempo.
De esta forma, los asistentes aprenderán a adoptar este enfoque que permite a los equipos hacer frente a la creciente complejidad del software con herramientas modernas, facilitando tanto la evolución como el mantenimiento de las aplicaciones.
El ponente: Iván Garcia Sainz-Aja (Software Engineer | Speaker | Building ZenWave 360º at Izertis)
Iván García Sainz-Aja es un experimentado ingeniero de Software con un profundo conocimiento de tecnologías Java, Spring-Boot y Spring-Cloud. Está especializado en Domain-Driven Design (DDD) y arquitecturas Orientadas a Eventos para crear Software fácil de entender. Acumula una gran experiencia en:
- Principios de Domain-Driven Design (DDD) y talleres de Event-Storming Design para obtener una buena comprensión de los requisitos del negocio.
- Arquitecturas Orientadas a Eventos (EDA) y API-First con la Especificación AsyncAPI, de la cual forma parte del Comité Directivo Técnico.
- Desarrollo ZenWave 360º: ZenWave 360º es un conjunto de herramientas construido sobre los fundamentos del Domain Driven Design y los principios API-First para Arquitecturas Orientadas a Eventos, para ayudarte a crear software fácil de entender.
- Ponente: compartiendo su conocimiento en temas relacionados con DDD, EDA y tecnologías Java.