Apache Kafka ha pasado de ser “el sistema de Messaging en empresas grandes” a ser “el backbone de eventos” de arquitecturas modernas. En 2023 ha cruzado varios umbrales importantes — entre ellos, la salida completa de ZooKeeper con KRaft — que simplifican operación y abren nuevos patrones de uso.
KRaft: adiós a ZooKeeper
Durante más de una década, Kafka dependía de ZooKeeper para coordinar cluster, gestionar metadata y elegir líderes. Esto significaba dos clusters para operar, dos tipos de fallos a entender, dos sistemas de backup.
KRaft (Kafka Raft) integra el consenso dentro de Kafka. Las ventajas:
- Un solo sistema a operar. Un cluster Kafka es, finalmente, un cluster Kafka.
- Startup más rápido. Sin sincronización con ZooKeeper al arrancar.
- Metadata escalable: Kafka en modo KRaft soporta millones de particiones por cluster, vs ~200k con ZooKeeper.
- Menor huella. Un rol menos significa menos memoria, menos nodos, menos configuración.
En Kafka 3.5 (junio 2023), KRaft es GA para nuevos clusters. Para clusters existentes en ZooKeeper, la migración in-place está en beta — no se recomienda todavía 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 en 2023:
Change Data Capture (CDC)
Capturar cambios en bases de datos y publicarlos como eventos. Debezium es el estándar de facto, con conectores para PostgreSQL, MySQL, MongoDB, Oracle, 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 diseño de eventos y manejo de evolución de schema.
Funciona bien en dominios con trazabilidad obligatoria (auditoría financiera, compliance). Menos adecuado en CRUD general donde el coste cognitivo no se paga.
Stream processing
Procesamiento continuo sobre flujos con Kafka Streams, ksqlDB o Apache Flink. Casos de uso: 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 quieres un cluster adicional.
Alternativas que compiten
Tres proyectos que merecen conocer:
- Apache Pulsar: arquitectura storage/compute separada, multi-tenancy nativo, geo-replicación. Gana en operación a gran escala, pero ecosistema más pequeño.
- Redpanda: reescritura en C++ del protocolo Kafka, sin JVM, sin ZooKeeper. Afirma ~10x menor latencia con ~1/6 de hardware. Compatibilidad con clientes Kafka existentes.
- Confluent Cloud / AWS MSK: Kafka gestionado, para quien quiere pagar por no operar.
Elegir depende del contexto: para greenfield + latencia, Redpanda es atractivo. Para ecosistema maduro y herramientas amplias, Apache Kafka sigue ganando. Para equipos sin cultura operativa de infraestructura, cloud gestionado.
Qué sigue siendo difícil
Algunas áreas donde Kafka todavía no ha resuelto bien:
- Schema evolution. Con Avro + Schema Registry funciona, pero cambios incompatibles siguen requiriendo coordinación humana cuidadosa.
- Exactly-once semantics cross-topic. Los transactional producers de Kafka 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 — ruido en el flujo de procesamiento.
- Retención fina. Retener datos per-tenant o per-evento es complejo con las políticas de retención de Kafka.
Ver también nuestro análisis de RabbitMQ vs Kafka — decidir qué broker encaja con cada caso sigue siendo una de las decisiones arquitectónicas importantes.
Conclusión
Kafka en 2023 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.
Síguenos en jacar.es para más sobre streaming, arquitectura distribuida y datos en tiempo real.