Saltar al contenido
Explorar conocimiento

concepto · intermedio · 1 min de lectura

NATS

NATS es un sistema de mensajería ultrarrápido y minimalista, diseñado para alta disponibilidad, baja latencia y simplicidad operativa con soporte nativo para pub/sub y request-reply.

No requiere conocimientos previos.

Alcance en breve

Cubre

  • NATS as a concept

No cubre

  • implementation details

Supone

  • The reader understands relevant fundamentals.

Resumen

NATS es un sistema de mensajería de código abierto que prioriza la simplicidad y el rendimiento sobre las funciones. A diferencia de RabbitMQ (enrutamiento complejo) o Kafka (streaming masivo), NATS apunta a ser el "dial tone" de los sistemas distribuidos: siempre disponible, latencia mínima, configuración casi nula.

Soporta pub/sub —múltiples suscriptores reciben mensajes de un subject—, request-reply —un cliente envía una solicitud y espera respuesta—, y JetStream —persistencia y streaming sobre el core de NATS—. Escrito en Go, maneja millones de mensajes por segundo en hardware modesto.

Alcance y supuestos

Cubre NATS como sistema de mensajería, su modelo de subjects, y contraste con Kafka y RabbitMQ.

Modelo mental

Un intercomunicador de oficina. Apretás un botón, hablás, y todos los que están en ese canal te escuchan instantáneamente. No hay colas, no hay enrutamiento complejo: solo canales y mensajes. NATS es ese intercomunicador a escala de datacenter.

Uso práctico

  • ✅ Microservicios, edge computing, IoT, service mesh.
  • ❌ Procesamiento de eventos históricos o streaming masivo.

Ejemplo trabajado: health checks con NATS

Microservicios publican heartbeats en health.$service. Un monitor suscripto a health.> recibe todos los heartbeats y alerta si un servicio deja de emitir. Latencia sub-milisegundo, sin configuración de colas.

Evidencia

  • NATS es mantenido por Synadia y usado en producción por Cloud Foundry, Siemens y Mastercard.

Fuentes citadas