Kafka vs RabbitMQ: diferencias técnicas para arquitectos
Kafka está diseñado como una plataforma de streaming distribuida para manejar grandes volúmenes de datos con alta durabilidad y tolerancia a fallos. RabbitMQ es un message broker robusto que soporta múltiples protocolos de mensajería para escenarios de enrutamiento complejo y comunicación asíncrona.
Herramienta A
Apache Kafka
Herramienta B
RabbitMQ
Diferencias técnicas clave
Apache Kafka
Modelo de log distribuido (commit log). Los consumidores leen desde offsets, permitiendo relectura de mensajes.
RabbitMQ
Modelo de colas de mensajes (queues). Los mensajes son eliminados de la cola una vez consumidos y confirmados.
Apache Kafka
Persistencia en disco por defecto, con replicación configurable por topic/partition. Alta durabilidad y retención.
RabbitMQ
Persistencia configurable por cola/mensaje. Puede ser transitorio o persistente en disco. Durabilidad variable.
Apache Kafka
Escalabilidad horizontal mediante particiones y grupos de consumidores. Diseñado para alto throughput.
RabbitMQ
Escalabilidad horizontal mediante clustering y federación. Puede ser un cuello de botella en alto throughput.
Apache Kafka
At-least-once por defecto. Exactly-once semántica posible con transacciones y idempotencia de productor.
RabbitMQ
At-least-once por defecto. At-most-once y Exactly-once (con transacciones) son configurables.
Apache Kafka
Protocolo binario propietario de Kafka. Clientes disponibles en múltiples lenguajes.
RabbitMQ
Soporta AMQP 0-9-1, AMQP 1.0, STOMP, MQTT, y otros vía plugins.
Apache Kafka
Orden garantizado dentro de una partición. No hay garantía de orden global entre particiones.
RabbitMQ
Orden garantizado dentro de una cola. No hay garantía de orden global entre colas.
Cuándo usar Apache Kafka
- → Construcción de data pipelines en tiempo real y ETL.
- → Procesamiento de eventos a gran escala (event sourcing, CQRS).
- → Recolección de logs y métricas centralizadas.
- → Sistemas que requieren relectura de datos históricos o streaming de datos.
Cuándo usar RabbitMQ
- → Comunicación asíncrona entre microservicios con enrutamiento complejo.
- → Sistemas que requieren patrones de mensajería avanzados (fan-out, topic, RPC).
- → Integración con sistemas legacy que usan AMQP, STOMP o MQTT.
- → Procesamiento de tareas en segundo plano con colas de trabajo.
¿Te ha gustado este análisis? Recibe los 5 mejores de la semana →
Suscribirme al digest