Sostenibilidad de las redes
(Sección: Ecosistema y Red)
1) Objetivo y área
La «sostenibilidad de las conexiones de red» es la capacidad del ecosistema para mantener la disponibilidad y la calidad predecible de las interacciones entre los participantes (operadores, proveedores, estudios, afiliados, nodos/validadores, servicios de pago y KYC) en fallas de canales, nodos, regiones y ataques externos. Tareas clave: minimización de MTTR, contención de fallas en cascada, degradación controlada y recuperación rápida a SLO objetivo.
2) Modos fallidos (Threat model)
Red: pérdida de paquetes/jitter, sobrecarga de canales, flap BGP, roturas interregionales, enrutamiento asimétrico.
Transporte/sockets: conexiones medio-abiertas, bloqueo head-of-line (TCP), exhausto de estado (NAT/conn-track).
Nivel de aplicación: picos de tráfico, solicitudes «de larga duración», n + 1 RPC, tormenta de retraídas.
Dependencias: degradación de DNS, KMS/PKI, colas, TURN/relay, API de terceros.
Seguridad: L3/L4/L7 DDoS, bot flood, envenenamiento de caché, intentos de Sybil/spam.
Operación: fichflags incorrectos, lanzamientos «calientes» sin límites, temporizadores incorrectos.
3) Principios de diseño de sostenibilidad
1. Redundancia en todas las capas: rutas, regiones, proveedores, relés, DNS, almacenamiento secreto.
2. Aislamiento de fallos: arquitectura cell-based, circuit-breakers, bulkheads, límites de llamadas cruzadas.
3. Fail-fast y time-boxing: tiempos cortos en llamadas externas, prohibición de «esperar para siempre».
4. Idempotencia y retraídas seguras: llaves de idempotencia, dedoop en el receptor.
5. Observabilidad predeterminada: trazados, ID de correlación, muestras sintéticas.
6. Modos de degradación: sólo lectura, sólo caché, drop-features, prioridad de subprocesos críticos.
7. Chaos-engineering: prueba de sostenibilidad por experimento.
4) Topologías y redundancia
P2P + super-peers + DHT híbrido: mesh local dentro de grupos «contractuales», super-nodos como repetidores y cachés, DHT para buscar.
Anycast/Geo-DNS/SD-WAN: entrada cercana, flujos guiados, ruta de salud basada.
Multi-relés (TURN/HTTP-tunnels): proveedores independientes, presupuesto para relay sólo cuando sea necesario.
Regiones Active-Active: sincronizadas para lecturas/eventos idempotentes; para operaciones monetarias - consistencia final + finalización estricta.
5) Protocolos, tiempos de espera y retiros
Transporte: QUIC/HTTP3 (multiplexación sin HoL-blocking, migración de rutas), TCP - como fallback.
Temporizaciones (puntos de referencia):- RPC client timeout: p99_latency×1. 5 (pero ≤ 2-3 con interregional).
- Connect timeout: 200-500 ms localmente, 700-1200 ms interregional.
- Backoff: exponencial con jitter; max-retries 2-3 para llamadas de «lectura».
- Hedged requests: después de un retraso de p95 enviar un segundo artista (sólo operaciones idempotentes).
- Idempotencia: título/campo 'x-idempotency-key', almacenamiento de registros de dedup ≥ retraídas TTL.
- Colas y outbox: entrega garantizada de eventos, repetición en caso de fallas en la red, dedoup en consumers.
6) Gestión de carga y «autoprotección»
Ratios-límites y cuotas: leaky-bucket/token-bucket en RPC/topics.
Adaptive load-shedding: restablece las solicitudes de baja prioridad cuando aumenta la latencia.
Prioridades: dinero/pagos> eventos de juego> telemetría.
Backpressure: ventana dinámica, restricciones de concurrencia, «límites de crédito» de las fiestas.
Conexión pooling: pools cálidos, límites a los sockets abiertos/estado NAT.
7) DDoS y seguridad del canal
L3/L4: upstream scrubbing/Anycast, conn-track защита, SYN-cookies, UDP-rate.
L7: WAF/WAAP, proof-of-work/fee-gate para temas abiertos, capchis/monederos contra spam.
mTLS/TLS 1. 3 + E2E: encriptación «en ruta», pinning de claves super-nodos, rotación de certificados.
Anti-Sybil: registro de peer-ID de confianza, reputación, KYB/KYC para roles de influencia.
Impagos de títulos: «prohibido, a menos que se permita», ACL por topic, minimización de derechos.
8) SLO, SLI y métricas de sostenibilidad
SLO (ejemplo):- Uptime endpoints críticos ≥ 99. 95 %/30д.
- p99 latency interregional ≤ 600 ms; error-rate ≤ 0. 2%.
- Success-rate P2P-RPC ≥ 99. 5%; Pub/Sub E2E p95 ≤ 2 с.
- Relay-share ≤ 30%; DHT resolve p95 ≤ 300 мс.
- MTTR SEV-1 ≤ 30 minutos; MTTA ≤ 5 minutos.
- Conectividad% (alcanzabilidad de las fiestas), proporción de conexiones directas, promedio de vecinos.
- RTT/Jitter/Loss por clases de tráfico; RPC success/failure taxonomy.
- Queue depth/lag en brókers/relay; DHT hit/miss y edad de los registros.
- Burn-rate por SLO (1h/6h/24h); impacto en los KPI comerciales (pérdidas de GTV/MAU).
9) Observabilidad y muestras sintéticas
Senderismo: trace-ID de extremo a extremo, exportación a través de OpenTelemetry, semántica de spans para hops de red.
Registros/métricas: registros estructurales, cardinalidad bajo control, agregados p95/p99.
RUM + sintética: métricas personalizadas reales y muestreo global (cada 1-5 min) de regiones clave/proveedores.
SLO-dashboards: «semáforos» sobre flujos críticos, mapas de retraso/disponibilidad, informes de degradación.
10) Regímenes de degradación
Sólo lectura/caché: cuando se recorta la entrada en backends.
Stale-while-revalidate: damos una memoria caché obsoleta pero adecuada con una actualización de fondo.
Función kill-switch: interruptor rápido de piezas inestables.
Límite de fan out: prohibición de solicitudes de «abanico», fusibles en profundidad.
11) Chaos-engineering (plan)
Faults de red: 1-5% packet-loss, 100-300 ms jitter, blackhole ASN individuales.
Fallo Relay/TURN: apagar N% super-nodos, comprobar la proporción de conexiones directas.
DNS/KMS degradación: temporizadores/errores artificiales, validación de folbacks.
Tormenta de retraídos: verificación de defensas contra cascadas (jitter, limites, dedoup).
Reglamento del día de juego: hipótesis → inyección de métricas → → mejorar la repetición →.
12) Estrategia y objetivos de DR
RPO/RTO: para los datos de configuración y ACL - RPO ≈ 0 (snapshots sincrónicos), RTO ≤ 15 min; para telemetría, permitiremos RPO ≤ 5 minutos.
Catálogos y claves: reservas frías, backups ocasionales fallidos, «entrenamiento de recuperación».
Desastres regionales: conmutación Anycast/Geo-DNS, calentamiento de cachés, replicación de colas/topics.
13) Pseudo-configuraciones
Política de retornos y temporizadores del cliente (YAML)
yaml client:
rpc:
connect_timeout_ms: 400 request_timeout_ms: 1500 retries:
max_attempts: 2 backoff: exponential base_ms: 100 jitter: true hedging:
enabled: true threshold_ms: 800 # p95 idempotent_only: true
Circuit-breaker y prioridades
yaml resilience:
circuit_breaker:
error_rate_threshold: 0. 02 rolling_window_sec: 60 open_duration_sec: 15 priorities:
payouts: high game_events: medium telemetry: low load_shedding:
target_p99_ms: 600 drop_low_priority: true
ACL y e2E
yaml security:
mtls: required e2e_topics: [payouts. status, limits. update]
acl:
operators: [12D3KooA..., 12D3KooB...]
providers: [12D3KooC..., 12D3KooD...]
14) Dashboards: maquetas
Ops (hora/tiempo real): Conectividad%, RPC p99, error-rate, relay-share, DHT-latency, queue-lag, SLO burn-rate.
Network Health (semana): tendencias relay-% y RTT, listas de fiestas «ruidosas», éxito de NAT traversal, costo del tráfico.
Estrategia (mes): incidentes de SEV, MTTA/MTTR, entrenamiento de RD, correlación con métricas de negocio.
15) Incidentes de Playbook (parche)
Salto p99 y errores: habilitar la degradación (sólo lectura, sólo caché), cobertura, aumentar las cuotas a hilos críticos, abrir tickets en la ruta «caliente».
Relay-share> umbrales: cambiar grupos STUN/TURN, expandir super-nodos, amplificar hole-punch, elevar temporalmente la caché TTL.
Tormenta de retraídas: reducir los retiros max, aumentar el jitter, habilitar la bandera global de retroceso a través del servicio de configuración.
DDoS L7: habilitar reglas WAAP, bloque de firmas/velocidad, habilitar PoW/fee-gate en temas públicos, desactivado. Endpoints no esenciales.
Problemas DNS/KMS: activar proveedores secundarios, cachés de claves locales, cambiar resolvers.
Región no disponible: failover de tráfico (Anycast/Geo-DNS), warming de otra región, recuento de límites.
16) Lista de verificación de implementación
1. Fijar SLO/SLI y propietarios (por subprocesos/topics).
2. Introducir taymauty/retrai/hedzhing/idempotentnost.
3. Configurar circuit-breakers, bulkheads y prioridades.
4. Lanzar muestras sintéticas y dashboards globales.
5. Introducir un plan de RP (RPO/RTO), entrenamiento de recuperación regular.
6. Realizar un día de chaos trimestral y una revisión de parámetros.
7. Documentar modos de degradación y patrones de comunicación.
17) Glosario
Bulkhead - Aislamiento de subsistemas para prevenir cascadas.
Circuit breaker - desactivar automáticamente la dependencia inestable.
Hedging: consultas competitivas después de un retraso de umbral.
Outbox/Inbox - Envío/recepción confiable de eventos con deduplicación.
RPO/RTO - Pérdida de datos válida/tiempo de recuperación.
SLO burn-rate - tasa de «quema» del presupuesto de errores con respecto a SLO.
En resumen: la sostenibilidad de las conexiones de red no es «una ficha», sino una disciplina: redundancia y aislamiento de fallas, taimautas y retraídas alfabetizados, prioridad estricta, observabilidad y pruebas regulares. Este enfoque convierte las interrupciones inevitables de la red en eventos gestionados con un impacto mínimo en los flujos de negocio del ecosistema.