Conector enrutador vs difusión: Twitter
Clase 28 de 43 • Curso Profesional de Arquitectura de Software
Contenido del curso
Atributos de calidad
- 2

Qué son los atributos de calidad en software
01:49 min - 3

Cómo medir idoneidad funcional en software
02:52 min - 4

Qué es eficiencia de ejecución en software
04:14 min - 5

Cómo medir interoperabilidad y coexistencia
03:49 min - 6

Qué es la usabilidad y sus 6 dimensiones
08:14 min - 7

Cómo medir confiabilidad en software
05:38 min - 8

Los 5 pilares de seguridad en software
04:01 min - 9

Cómo garantizar mantenibilidad con tests
06:27 min - 10

Adaptabilidad vs capacidad de instalación vs reemplazo
02:48 min - 11

Tensiones entre atributos de calidad de software
04:04 min - 12

Atributos de calidad según fase de empresa
07:00 min
Patrones de arquitectura
- 13

Qué es un patrón de arquitectura
02:50 min - 14

Modelo vista controlador: cómo separar responsabilidades
05:37 min - 15

Arquitectura en capas: controller, servicio y repositorio
03:14 min - 16

Event sourcing vs bases relacionales
06:17 min - 17

Qué es la arquitectura microkernel
01:52 min - 18

Arquitectura Comparte Nada con Map Reduce
02:29 min - 19

Patrón de microservicios: cuándo y cómo
03:57 min - 20

Qué es CQRS y cómo separa lectura de escritura
03:24 min - 21

Arquitectura hexagonal: puertos y adaptadores
04:10 min - 22

Qué son los contextos delimitados en DDD
05:34 min - 23

Cómo combinar patrones de arquitectura
09:22 min - 24

Evolución de patrones desde monolito a microservicios
07:58 min
Diseño de una arquitectura
- 25

Cómo traducir requerimientos en decisiones arquitectónicas
02:18 min - 26

Conectores en arquitectura: tipos y cuándo usarlos
06:18 min - 27

Llamadas asíncronas vs síncronas vs cliente-servidor
03:05 min - 28

Conector enrutador vs difusión: Twitter
Viendo ahora - 29

Conectores cola, repositorio y pub/sub
03:52 min - 30

Framework de diseño orientado a atributos
01:55 min - 31

Cómo detectar fallas y reparar sistemas
05:59 min - 32

Cómo recuperar y prevenir fallas en sistemas
04:09 min - 33

Tácticas para confinar modificaciones
06:15 min - 34

Cómo prevenir efectos dominó en software
12:17 min - 35

Tácticas para controlar eficiencia de ejecución
09:14 min - 36

Cómo detectar, resistir y recuperarse de ataques
09:02 min - 37

Cómo probar que el software funciona correctamente
05:14 min - 38

Cómo controlar la usabilidad con tácticas
08:20 min - 39

Cómo validar arquitectura con ATAM y métricas
06:34 min - 40

Evolución de arquitectura: startup a gran escala
10:30 min
Modelado y documentación de arquitectura
Comprender cuándo usar un conector enrutador y cuándo un conector de difusión cambia la efectividad de cualquier sistema de mensajería. Aquí se explica, con un ejemplo claro de Twitter, cómo fluye un mensaje desde un emisor hacia los componentes receptores y dónde conviene ubicar la inteligencia que decide la entrega.
¿Qué diferencia a un conector enrutador de uno de difusión?
Un conector enrutador conecta un componente que emite un mensaje con un conjunto específico de componentes a los que ese mensaje sí les interesa. Tiene la inteligencia para entender el contenido y decidir el o los destinos adecuados. Puede enviar a un único componente o a varios a la vez.
Por contraste, un conector de difusión parte de un mensaje de un emisor y lo envía a muchos componentes. Luego, cada componente que escucha decide si ese mensaje le importa o no. La diferencia central está en quién piensa: el enrutador decide los destinatarios, o los componentes receptores filtran lo que reciben.
¿Cuándo conviene que la inteligencia esté en el conector o en el componente?
- Cuando se busca precisión inmediata en la entrega: usar enrutador.
- Cuando varios receptores deben escuchar todo y filtrar: usar difusión.
- Si el destino puede ser único o múltiple, pero acotado: preferir enrutamiento.
- Si el mensaje es público y amplio: preferir difusión.
¿Cómo opera Twitter con enrutamiento y difusión?
En Twitter conviven ambos patrones para distintas funcionalidades. Esto permite entregar relevancia a quien corresponde y, a la vez, mantener escuchas abiertas sobre eventos públicos.
- Seguidores y timelines con enrutamiento: cuando un usuario publica, un enrutador decide a qué base de datos Redis llegará ese mensaje. Cada base de datos actúa como un componente que representa la timeline relevante para una persona o grupo.
- Mensajes públicos con difusión: cada mensaje público se difunde. Varios componentes que escuchan todos los mensajes públicos aplican su propia inteligencia para determinar si ese mensaje es importante para ellos o no.
En síntesis, Twitter ilustra el contraste: o el conector comprende y dirige el mensaje a donde corresponde, o los componentes lo reciben todo y deciden qué conservar.
¿Qué habilidades y decisiones clave aplicas al diseñar estos conectores?
Diseñar bien implica leer el flujo de información y decidir el punto óptimo de selección.
- Distinguir si la selección la hace el conector o el componente.
- Definir si el destino es único o múltiple según el interés real del receptor.
- Representar una timeline como componente que almacena lo relevante para un usuario.
- Usar difusión cuando múltiples componentes deben escuchar todo lo público.
- Usar enrutamiento cuando se necesita entregar solo a los interesados.
¿Tienes un caso donde dudes entre enrutamiento o difusión? Cuéntalo en los comentarios y conversemos cómo decidir la mejor estrategia.