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

Paga según tus necesidades

lite (sólo mensual)

Cargando…
al mes
  • Acceso a un subconjunto de cursos para sentar las bases para un código mantenible, escalable y testable
  • Factura de empresa
Black Friday

standard

Cargando…
Ahorra 191
Pago anual de 0
al mes
  • Todo lo anterior
  • 70€ de descuento Black Friday
  • Catálogo completo de cursos
  • Retos mensuales de diseño y arquitectura
  • Vídeos de soluciones destacadas de los retos
  • Recibir ofertas de empleo verificadas por Codely
  • Factura de empresa
Black Friday

premium

Cargando…
Ahorra 239
Pago anual de 0
al mes
  • Todo lo anterior
  • 150€ de descuento Black Friday
  • Más beneficios próximamente

No subiremos el precio mientras mantengas tu suscripción activa