Puntos Clave de la Noticia
- Causa raíz: Una falla de enfriamiento en AWS apagó racks de servidores, lo que desencadenó interrupciones generalizadas en los servicios de Coinbase, afectando el trading y las acciones de las cuentas.
- Problemas agravantes: La pérdida de quórum en el motor de emparejamiento (matching engine) y un defecto silencioso en el plano de control de Kafka extendieron significativamente el tiempo de recuperación.
- Próximos pasos: Coinbase está mejorando la resiliencia entre zonas, expandiendo las pruebas de conmutación por error (failover) y actualizando los despliegues de Kafka para prevenir incidentes similares.
La interrupción del servicio del 7 de mayo dejó a los clientes de las plataformas minoristas e institucionales enfrentando horas de actividad suspendida, y la compañía ahora está detallando cómo una falla de enfriamiento localizada en AWS se convirtió en una caída prolongada de múltiples capas. Coinbase señaló que la interrupción de ocho horas, seguida de una ventana de recuperación completa del sistema de doce horas, no cumplió con sus estándares y publicó un informe técnico detallado de los fallos que agravaron el incidente.
Una falla de enfriamiento en AWS desencadenó apagones generalizados
Según la compañía, la cadena de eventos comenzó a las 7:20 PM ET cuando múltiples unidades de enfriamiento (chillers) fallaron dentro de una sola sala de datos en la región us-east-1 de AWS. La pérdida de enfriamiento forzó un apagado por seguridad térmica de los racks que alojaban instancias de EC2 y volúmenes de EBS, lo que impactó a los sistemas de Coinbase junto con otros servicios importantes de internet. Para las 7:48 PM ET, casi todo el trading en la plataforma se había detenido, dejando a los usuarios minoristas sin poder comprar, vender, enviar, recibir, depositar ni retirar. Los clientes institucionales en Prime también experimentaron una degradación en el enrutamiento de órdenes a medida que los mercados de Coinbase Exchange quedaron fuera de línea.
La recuperación progresó de manera desigual. El motor de emparejamiento regresó en modo de solo cancelación a las 2:25 AM ET del 8 de mayo, el trading completo se reanudó a las 3:49 AM ET, y coinbase.com junto con la aplicación móvil recuperaron su funcionalidad total para las 9:53 AM ET. Los retrasos en la transmisión de eventos se completaron para las 2:00 PM ET. Coinbase también notificó a los reguladores dentro de los plazos requeridos y está completando las evaluaciones formales de impacto.

Dos debilidades arquitectónicas prolongaron la caída
La compañía identificó dos problemas centrales que convirtieron un evento de AWS en una sola zona en una interrupción de la plataforma de varias horas. Primero, el motor de emparejamiento estaba anclado a un solo edificio debido a su diseño de clúster basado en Raft, el cual prioriza la cointegración de baja latencia. Cuando AWS terminó las instancias a las 9:29 PM ET, tres de los cinco nodos se cayeron, eliminando el quórum. Al no haber una conmutación por error automatizada entre zonas, los ingenieros tuvieron que implementar un cambio de código de emergencia, crear un nuevo grupo de nodos y restaurar un quórum de 3 de 5 manualmente.
Segundo, el servicio gestionado de Kafka de AWS falló de forma silenciosa. Un defecto en el plano de control de MSK evitó la reelección automática del líder de la partición, dejando a los productores incapaces de escribir y bloqueando los sistemas descendientes (downstream), incluyendo comisiones, cotizaciones, componentes del libro contable, pagos y tuberías de datos (data pipelines). Las reasignaciones manuales de particiones comenzaron a las 3:00 AM ET, y los temas prioritarios se restauraron para las 9:30 AM ET.
Coinbase afirma que está mejorando el diseño de respaldo entre zonas para sus motores de emparejamiento, incrementando las pruebas de conmutación por error, colaborando con AWS en el defecto de Kafka, mejorando las herramientas internas y migrando los clústeres restantes de Kafka de 2 zonas de disponibilidad (2-AZ) a despliegues de 3 zonas de disponibilidad (3-AZ).





