Colas de tareas, fan-out de pub/sub, streaming de eventos y request-reply son problemas distintos. Elegir la herramienta por el nombre antes de definir el problema genera costo de migración y factura mensual inflada. Kafka, RabbitMQ y SQS resuelven cada uno de forma diferente.

Kafka: log distribuido con replay

Kafka guarda eventos en un log distribuido que los consumidores pueden releer desde el inicio. Los consumer groups escalan al sumar miembros. El throughput llega a cientos de miles de mensajes por segundo en clusters modestos. La operación consume dedicación: brokers, particiones, rebalances y retención exigen atención incluso en MSK o Confluent. Usa Kafka para event sourcing, pipelines de analytics y broadcast a múltiples consumidores independientes.

RabbitMQ: broker con routing rico

RabbitMQ filtra por patrón de clave en topic exchanges, captura mensajes rechazados en dead-letter exchanges, reordena entregas por prioridad y replica estado entre nodos con quorum queues. Cubre decenas de miles de mensajes por segundo con holgura y resuelve colas de tareas con topología compleja usando menos piezas que un cluster Kafka.

SQS: cola administrada dentro de AWS

SQS cobra por mensaje y escala solo. Límites: 256KB por mensaje, delay máximo de 15 minutos, precio en la franja de centavos por millón de requests. Las colas FIFO agregan ordenamiento estricto con techos de throughput (300 req/s por defecto, hasta 3.000 con batching). Equipos AWS-native ganan infraestructura de cola sin administrar servidores.

Ordenamiento por partición

Kafka garantiza orden dentro de cada partición. La clave de partición decide la secuencia: pedidos particionados por customer_id preservan el orden por cliente. RabbitMQ también abandona el orden global bajo consumers concurrentes. Diseña consumidores idempotentes en cualquier herramienta. La infraestructura optimiza, la idempotencia corrige.

Costo operacional

  • Kafka administrado (MSK, Confluent): cluster mínimo desde ~$200/mes
  • RabbitMQ self-hosted: instancia barata, pero HA, failover y upgrades caen en tu backlog
  • SQS: precio por mensaje, escala a cero cuando el tráfico desaparece

Punto de partida

Empieza con SQS si el equipo vive en AWS, o RabbitMQ si el routing rico importa fuera de ella. Migra a Kafka cuando replay de histórico, múltiples consumidores independientes o 100k+ msg/s se vuelvan requisito real. Un equipo pequeño con cola de jobs necesita una cola confiable y observabilidad decente, no un cluster propio.