Skip to content

Manual de Kafka

Apache Kafka es una plataforma distribuida de streaming de eventos. Se usa para publicar, almacenar y consumir flujos de datos entre sistemas de forma desacoplada.

Kafka no es simplemente una cola. Su modelo gira alrededor de logs distribuidos, topics particionados, offsets y consumidores que deciden desde donde leer.

Capitulos previstos

  1. Introduccion y arquitectura
  2. Topics partitions y brokers
  3. Producers y consumers
  4. Consumer groups y offsets
  5. Serializacion y schemas
  6. Kafka Streams
  7. Operaciones y seguridad
  8. Patrones de eventos
  9. Arquitectura interna del log
  10. Garantias de entrega y orden
  11. Schema evolution y contratos
  12. Observabilidad y troubleshooting
  13. Kafka en produccion
  14. Proyecto final

Componentes principales

  • Broker: servidor Kafka que almacena particiones y atiende lecturas/escrituras.
  • Topic: categoria logica de eventos.
  • Partition: fragmento ordenado de un topic.
  • Producer: aplicacion que publica eventos.
  • Consumer: aplicacion que lee eventos.
  • Consumer group: conjunto de consumidores que reparte particiones.
  • Offset: posicion de lectura dentro de una particion.
  • Replication factor: numero de copias de cada particion.

Arquitectura conceptual

txt
Producers -> Topic A (partitions) -> Consumers
                 |
                 v
              Brokers

Kafka conserva eventos durante un periodo o hasta alcanzar cierto tamano. Un consumidor puede leer eventos nuevos o reprocesar desde un offset anterior si la retencion lo permite.

Ejemplo de evento

json
{
  "event_id": "evt_001",
  "event_type": "order_created",
  "occurred_at": "2026-06-25T10:30:00Z",
  "payload": {
    "order_id": "ord_123",
    "customer_id": "cus_456",
    "amount": 89.9
  }
}

Casos de uso

  • Integracion entre microservicios.
  • Ingesta de eventos de aplicaciones.
  • Streaming hacia data lakes o warehouses.
  • Auditoria y trazabilidad de eventos.
  • Procesamiento en tiempo casi real.

Buenas practicas

  • Modela topics por eventos de negocio, no por tablas sin pensar.
  • Define claves de particion estables.
  • Usa schemas para contratos entre productores y consumidores.
  • Disena consumidores idempotentes.
  • Monitoriza lag, errores y throughput.
  • Ajusta retencion segun necesidad de reprocesamiento.

Errores comunes

  • Usar Kafka como base de datos principal.
  • Crear demasiados topics sin criterio.
  • No definir clave de evento.
  • Romper compatibilidad de schemas.
  • Ignorar el lag de consumidores.
  • Asumir orden global entre particiones.

Ejercicio

Disena un flujo de eventos para pedidos:

  1. Define topics para pedidos creados y pedidos cancelados.
  2. Decide la clave de particion.
  3. Define campos obligatorios del evento.
  4. Explica que consumidores leerian esos eventos.
  5. Indica que metricas monitorizarias.