Curso de Comunicación entre microservicios: Event-Driven Architecture

Javier FerrerRafa Gómez

Por Javier Ferrer y Rafa Gómez Diseño y Arquitectura de Software

Publica y consume eventos de dominio, consistencia eventual, RabbitMQ y AWS SNS-SQS, migración de monolito a servicios, y mucho más.

💸 ¡Primera lección disponible sin registro! 💸

Una vez sentadas las bases de una Arquitectura de Software dentro de un determinado servicio con los cursos de Arquitectura Hexagonal, CQRS, y CQRS y Event Sourcing; nos centramos en cómo definir la arquitectura de nuestros servicios y la comunicación entre éstos para que sea óptima.

En este curso empezaremos analizando por qué movernos de un sistema monolítico a uno basado en microservicios, analizamos las distintas alternativas a la hora de compartir información entre nuestros servicios: Desde compartir la base de datos hasta la publicación y consumo de eventos de dominio, pasando por APIs HTTP incluso usando circuit breakers. ¿Qué beneficios y contras tiene cada alternativa? ¿Cuándo nos interesará usar una u otra?

Además, entraremos en detalle proponiendo posibles soluciones de implementaciones concretas a la hora de definir nuestra infraestructura en RabbitMQ, en AWS con SNS y SQS. No sólo eso si no que también veremos cómo publicar y consumir eventos desde PHP y Scala, y qué buenas prácticas o consideraciones deberemos tener en cuenta.

También atacaremos de frente analizando soluciones a los nuevos problemas que tendremos que hacer frente derivados del uso de colas de mensajería para la publicación y consumo de eventos: ¿Qué hacemos con los eventos que no llegan en orden? ¿Y cuando se duplican?

Por último, propondremos un plan de migración para extraer servicios en base a un monolito existente. Aspectos a tener en cuenta para mantener la retrocompatibilidad y no forzar a nuestros clientes a apuntar al nuevo servicio, reducir el riesgo en el proceso de migración hacia el nuevo servicio, y otras buenas practicas a tener en cuenta.

En resumen, aprenderás a:

  • Identificar cuándo es un problema o limitación el seguir usando un monolito
  • Pros y contras de definir servicios compartiendo base de datos
  • Pros y contras de comunicar nuestros servicios vía APIs HTTP
  • Qué es un circuit breaker, cuándo usarlo, y qué beneficios aporta
  • Afianzar conceptos de SOLID analizando el paralelismo entre su aplicación a nivel de clases y cómo llevarlo a nivel de arquitectura de servicios
  • Definir la estructura de nuestros eventos de dominio
  • Qué elementos componen un sistema de colas de mensajería
  • Qué tipos de exchange tenemos disponibles y cuándo usar cada uno de ellos
  • Gestionar errores derivados de las colas de mensajería como el orden no garantizado y la duplicidad de nuestros eventos al consumirlos
  • Definir nuestra estructura de colas en RabbitMQ
  • Aprovechar SNS y SQS para implementar nuestras colas en AWS optimizándolo para un consumo más eficiente
  • Publicar y consumir eventos desde sistemas como PHP y Scala (u otros lenguajes basados en JVM como Java)
  • Migrar de un monolito existente a microservicios de forma progresiva

No lo dudes más y suscríbete por sólo 30€/mes para aprender todos estos conceptos y pequeños trucos que hemos condensado en un curso directo y al grano 🙂

Vídeos del curso

Cursos relacionados

Ver catálogo completo

Individuos

24,91€/ mes · pago anual299€ al año
  • 💻Acceso a todos los cursos
  • 🏅Contenido de calidad
  • 🧑‍🏫Profesionales con amplia experiencia
  • 🚀Nuevo contenido cada semana
  • 🧑‍🤝‍🧑Acceso a la comunidad CodelyTV
  • 🧑‍🎓Certificados al completar cursos
  • 💸12 meses por el precio de 10
SIN PERMANENCIA MÍNIMASuscríbete

Empresas

¿Crees que puede interesar a más miembros del equipo?

  • 💸Descuento de hasta un 40%
  • Gestión centralizada de cuentas
  • 🧑‍🏫Profesionales con amplia experiencia
  • 💼Facturas a nombre de empresa
  • 📈Reportes y analítica