CursosWorkshop IAEmpresasPreciosBlogNewsletter
  • Cursos
  • Workshop IA
  • Empresas
  • Precios
  • Blog
  • Newsletter
Suscríbete
  • Cursos
  • Empresas
  • Comunidades
  • Blog
  • Tarjeta regalo
  • Newsletter
  • Soporte
  • Tienda
  • ConfAiBot
  • Contacta
  • Aviso legal
  • Condiciones generales
  • Política de privacidad
  • Política de cookies

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

Standard
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.

Ir al curso

💸 ¡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

  • Monolito - Cuándo son un problema
  • ¡Repasemos!

  • Alternativa 1 - Microlitos sin infraestructura
  • ¡Repasemos!
  • ¡A practicar! Cuándo migrar el monolito

  • Alternativa 2 - [Micro]servicios comunicándose usando APIs HTTP
  • Circuit breakers - Hystrix
  • ¡Repasemos!
  • ¡A practicar! Buscando alternativas al monolito

  • Repaso: SOLID a nivel micro-diseño
  • Solución - Eventos de dominio (SOLID a nivel macro-diseño)
  • Cómo definir la estructura de nuestros eventos de dominio
  • ¡Repasemos!
  • ¡A practicar! Definiendo nuestros eventos de dominio

  • Introducción a las colas de mensajería
  • ¡Repasemos!
  • ¡A practicar! Diseñando tu sistema de mensajería

  • Eventos desordenados
  • Eventos duplicados
  • ¡Repasemos!
  • ¡A practicar! Gestiona los errores

  • 🐰 Cómo definir la estructura de colas usando RabbitMQ
  • ☁️ Implementación con AWS SNS y SQS
  • ¡Repasemos!
  • ¡A practicar! Definiendo colas de mensajería

  • ƛ🐰 Publicando eventos con Scala en RabbitMQ
  • 🐘🐰 Consumiendo eventos con PHP desde RabbitMQ
  • ¡Repasemos!
  • ¡A practicar! publicando un nuevo evento

  • Cómo migrar de monolito a microservicios
  • ¡Repasemos!
  • ¡A practicar! migrando datos al nuevo servicio

  • Replicar datos con vistas más complejas
  • ¿Qué haríais con los procesos que controla el supervisord después de un nuevo deploy?
  • ¿Se pueden tener a la vez 2 Event Bus? ¿Uno síncrono y otro asíncrono?

  • Conclusiones
  • Feedback de mejora del curso
Ir al curso

Cursos relacionados

Standard
Patrones de diseño: Inbox y Outbox

📬 Patrones de diseño: Inbox y Outbox

Javier FerrerRafa Gómez

Aprende cuándo utilizar (y cuándo no) los patrones Inbox y Outbox.

Ver curso
Standard
Event bus en base de datos [Diseño de Infraestructura]

🚏 Event bus en base de datos [Diseño de Infraestructura]

Javier FerrerRafa Gómez

Añade escalabilidad utilizando tu propia base de datos como un Event Bus.

Ver curso
Standard
Auditoría Green Slope

🟢 Auditoría Green Slope

Javier FerrerRafa Gómez

Sesión de auditoría en la que revisamos el Diseño y Arquitectura de Software de Green Slope.

Ver curso
Ver catálogo completo

Paga según tus necesidades

lite (sólo mensual)

19 €
al mes
  • Cursos esenciales de programación para construir una base sólida
Popular

standard

24,92 €
Descuento vs mensual de 49 €
Pago anual de 299 €
al mes
  • Catálogo principal para dominar cómo escribir un código mantenible, escalable y testable
  • Recibir ofertas de empleo verificadas por Codely
  • Factura de empresa
  • Acumular descuentos al renovar

premium

41,58 €
Descuento vs mensual de 89 €
Pago anual de 499 €
al mes
  • Cursos exclusivos de IA para mantenerte siempre actualizado
  • Acceso anticipado a nuevos cursos
  • Descuento en workshops
  • Recibir ofertas de empleo verificadas por Codely
  • Factura de empresa
  • Acumular descuentos al renovar

No subiremos el precio mientras mantengas tu suscripción activa

SuscríbeteInicia sesión