Assignment: Instrument a Distributed System Using RTT 🌐#
(Observing Coherence Without Coordination)
Objetivo#
En esta tarea, usted instrumentará un sistema distribuido para observar coherencia a lo largo del tiempo utilizando ideas inspiradas en RTT.
Usted no:
- hará cumplir la consistencia
- arreglará fallos
- agregará protocolos de coordinación
- optimizará el rendimiento
Su objetivo es hacer visibles las suposiciones a través de los nodos.
Antecedentes (Por qué RTT se adapta a los sistemas distribuidos)#
Los sistemas distribuidos fallan no porque falten reglas, sino porque:
- el tiempo es inconsistente
- las suposiciones divergen entre nodos
- los límites se cruzan silenciosamente
RTT trata estos como problemas de coherencia, no problemas de control.
Configuración#
Utiliza cualquiera de los siguientes:
- un almacén de clave-valor (de juguete o real)
- un sistema de paso de mensajes
- un servicio replicado
- un simulador de consenso
- un marco de laboratorio distribuido proporcionado por tu instructor
Puedes simular nodos en una sola máquina.
Descripción de la Tarea#
Usted hará:
- Declarar una asunción distribuida
- Definir un corredor de coherencia
- Observar eventos de frontera
- Emitir insignias cuando las asunciones se desvíen
- No hacer nada más
Paso 1: Declara una Suposición Distribuida 🧠#
Elige una suposición que tu sistema hace implícitamente.
Ejemplos:
- “Todas las réplicas eventualmente ven el mismo valor.”
- “Los mensajes se entregan dentro de un tiempo limitado.”
- “Los líderes son únicos en cualquier momento.”
- “Los relojes están lo suficientemente cerca como para comparar marcas de tiempo.”
- “Las solicitudes se procesan en orden causal.”
Escribe esta suposición en una oración.
Paso 2: Definir un Corredor de Coherencia 🛤️#
Describe cómo se ve el comportamiento normal a lo largo del tiempo y a través de nodos.
Ejemplos:
- Retraso máximo aceptable en el mensaje
- Ventana de divergencia permitida entre réplicas
- Intervalo de latido esperado
- Desviación de reloj aceptable
Este corredor define coherencia esperada, no corrección.
Paso 3: Observar un Límite 🔄#
Identificar dónde podría desviarse la suposición.
Ejemplos:
- mensaje enviar / recibir
- actualización de réplica
- elección de líder
- expiración de tiempo de espera
- sincronización de estado
Agregar instrumentación solo en este límite.
Paso 4: Emitir una Insignia 🏷️#
Cuando el comportamiento sale del corredor, emite una insignia.
Una insignia debe incluir:
- lo que sucedió
- qué nodo lo observó
- cuándo fue observado (la hora local está bien)
- contexto relevante (IDs, versiones, retrasos)
Ejemplo (conceptual):
[BADGE]
type: COHERENCE_DRIFT
module: replication
node: replica_3
context: version_lag_exceeded
timestamp: 48291Las insignias pueden ser registradas localmente o recopiladas centralmente.
Paso 5: No Coordinar 🚫#
Esto es crítico.
Su sistema debe:
- no reintentar
- no reelegir
- no resincronizar
- no bloquear el progreso
Observación solamente.
Entregables 📦#
Enviar:
- Su suposición declarada y corredor
- Código de instrumentación
- Salida de insignia de muestra de múltiples nodos
- Una breve reflexión (5–7 oraciones):
- ¿Ocurrió deriva?
- ¿Fue simétrica entre nodos?
- ¿Importó más el tiempo que el estado?
Criterios de Calificación#
Se te califica en:
- claridad de la suposición
- correctitud de la observación
- utilidad del contexto de la insignia
- moderación (sin lógica de control)
No se te califica en:
- garantías de consistencia
- tolerancia a fallos
- rendimiento
Why This Matters#
Most distributed failures are not bugs — they are unobserved divergence.
RTT trains you to:
- see drift before coordination
- separate observation from agreement
- reason about time explicitly
These skills apply to:
- databases
- consensus systems
- microservices
- distributed AI systems
Extensión Opcional 🌱#
Introducir:
- retraso de red
- pérdida de mensajes
- desviación de reloj
Observe cómo cambian los patrones de insignias.
No “arregle” nada.
Instructor Note#
This assignment pairs well with lectures on:
- eventual consistency
- CAP tradeoffs
- failure detectors
- logical vs physical time
Students often discover that time, not logic, is the hardest part.