Mascota Jacar — leyendo contigo Un portátil cuyos ojos siguen el cursor mientras lees.
Arquitectura

Kafka en 2023: streaming de eventos en la empresa

Kafka en 2023: streaming de eventos en la empresa

Actualizado: 2026-05-03

Apache Kafka[1] ha pasado de ser “el sistema de mensajería en empresas grandes” a ser el backbone de eventos de las arquitecturas modernas. Ha cruzado varios umbrales importantes — entre ellos, la salida completa de ZooKeeper con KRaft[2] — que simplifican la operación y abren nuevos patrones de uso.

Puntos clave

  • KRaft (Kafka Raft) integra el consenso dentro de Kafka y elimina la dependencia de ZooKeeper: un solo sistema a operar, arranque más rápido y soporte para millones de particiones por clúster.
  • Los tres patrones más consolidados son CDC con Debezium, event sourcing y stream processing con Kafka Streams, ksqlDB o Flink.
  • Redpanda (C++, sin JVM ni ZooKeeper) y Pulsar (storage/compute separados) son alternativas reales con momentos distintos.
  • Schema evolution, exactly-once cross-topic y consumer rebalancing siguen siendo las áreas más problemáticas.
  • La pregunta para proyectos nuevos no es “¿Kafka o no?” sino “¿Kafka, Pulsar, Redpanda o cloud-gestionado?”.

KRaft: adiós a ZooKeeper

Durante más de una década, Kafka dependía de ZooKeeper[3] para coordinar el clúster, gestionar metadata y elegir líderes. Esto significaba dos clústeres para operar, dos tipos de fallos a entender y dos sistemas de backup.

KRaft (Kafka Raft) integra el consenso dentro de Kafka. Las ventajas son:

  • Un solo sistema a operar. Un clúster Kafka es, finalmente, un clúster Kafka.
  • Startup más rápido. Sin sincronización con ZooKeeper al arrancar.
  • Metadata escalable. Kafka en modo KRaft soporta millones de particiones por clúster, frente a ~200k con ZooKeeper.
  • Menor huella. Un rol menos significa menos memoria, menos nodos y menos configuración.

En Kafka 3.5 (junio), KRaft es GA para nuevos clústeres. Para clústeres existentes en ZooKeeper, la migración in-place está en beta — aún no recomendada para producción crítica, pero la dirección es clara.

Patrones maduros de uso

Kafka se usa bien en varios patrones distintos. Los más consolidados son:

Change Data Capture (CDC)

Capturar cambios en bases de datos y publicarlos como eventos. Debezium[4] es el estándar de facto, con conectores para PostgreSQL, MySQL, MongoDB, Oracle y SQL Server.

Un patrón típico: replicar tablas de un monolito a servicios nuevos (dual-write pattern), habilitando migración incremental sin cambiar el monolito. La base de datos sigue siendo la fuente de verdad; Kafka distribuye sus cambios.

Event sourcing

Almacenar el historial completo de cambios como eventos inmutables. Cualquier consumidor puede replicar el estado partiendo de los eventos. Patrón poderoso pero exigente: requiere disciplina en el diseño de eventos y en la evolución del schema.

Funciona bien en dominios con trazabilidad obligatoria — auditoría financiera, compliance. Menos adecuado en CRUD general donde el coste cognitivo no se recupera.

Stream processing

Procesamiento continuo sobre flujos con Kafka Streams[5], ksqlDB[6] o Apache Flink[7]. Casos de uso típicos: detección de fraude en tiempo real, enriquecimiento de eventos con datos de referencia, agregaciones continuas para dashboards.

Flink gana cuando hay estado complejo o ventanas temporales sofisticadas. Kafka Streams encaja mejor cuando el pipeline vive “dentro” de Kafka y no se quiere un clúster adicional.

Diagrama de arquitectura de un pipeline de CDC con Debezium, Kafka y múltiples consumidores de microservicios

Alternativas que compiten

Tres proyectos que merecen conocerse:

  • Apache Pulsar[8]: arquitectura storage/compute separada, multi-tenancy nativo, geo-replicación. Gana en operación a gran escala, pero ecosistema más pequeño.
  • Redpanda[9]: reescritura en C++ del protocolo Kafka, sin JVM ni ZooKeeper. Afirma ~10x menor latencia con ~1/6 de hardware. Compatible con clientes Kafka existentes.
  • Confluent Cloud[10] / AWS MSK[11]: Kafka gestionado para quien quiere pagar por no operar.

Elegir depende del contexto: para greenfield con requisitos de latencia, Redpanda es atractivo. Para ecosistema maduro y herramientas amplias, Apache Kafka sigue ganando. Para equipos sin cultura operativa de infraestructura, el cloud gestionado.

Qué sigue siendo difícil

Cuatro áreas donde Kafka todavía no ha resuelto bien:

  • Schema evolution. Con Avro + Schema Registry funciona, pero los cambios incompatibles siguen requiriendo coordinación humana cuidadosa.
  • Exactly-once semantics cross-topic. Los transactional producers funcionan, pero el rendimiento baja significativamente. Muchos equipos aceptan at-least-once + idempotencia en consumidores.
  • Consumer rebalancing. En topics con muchas particiones y consumers dinámicos, los rebalances pueden tardar segundos o decenas de segundos.
  • Retención fina. Retener datos per-tenant o per-evento es complejo con las políticas de retención de Kafka.
Comparativa de arquitecturas de Kafka (monolítico), Pulsar (storage/compute separados) y Redpanda (C++ nativo)

Ver también el análisis de RabbitMQ vs Kafka — decidir qué broker encaja con cada caso sigue siendo una de las decisiones arquitectónicas más importantes. Para la capa de observabilidad sobre Kafka, OpenTelemetry y el stack Grafana son los complementos naturales.

Conclusión

Kafka es infraestructura madura para streaming de eventos a escala empresarial. Con KRaft se simplifica operativamente; con el ecosistema de stream processing consolidado, los patrones de uso están bien documentados. Para proyectos nuevos, la pregunta ya no es “¿Kafka o no?” sino “¿Kafka, Pulsar, Redpanda o cloud-gestionado?”. Cada opción tiene su momento.

¿Te ha resultado útil?
[Total: 14 · Media: 4.5]
  1. Apache Kafka
  2. KRaft
  3. ZooKeeper
  4. Debezium
  5. Kafka Streams
  6. ksqlDB
  7. Apache Flink
  8. Apache Pulsar
  9. Redpanda
  10. Confluent Cloud
  11. AWS MSK

Escrito por

CEO - Jacar Systems

Apasionado de la tecnología, la infraestructura cloud y la inteligencia artificial. Escribe sobre DevOps, IA, plataformas y software desde Madrid.