1. Productor
El productor crea y envía un mensaje a un Tópico (sin saber a qué partición irá).
2. Broker / Tópico: "log-de-eventos"
Los mensajes se almacenan de forma inmutable y ordenada en Particiones. Aquí se simulan 3 Particiones para el Tópico.
P0 (Partición 0)
P1 (Partición 1)
P2 (Partición 2)
3. Grupo de Consumidores
Cada consumidor lee de una partición diferente dentro del grupo.
Consumidor A (Lee P0)
Offset (P0): 0
Consumidor B (Lee P1)
Offset (P1): 0
Consumidor C (Lee P2)
Offset (P2): 0
4. Finalidad de Kafka y Flujo Post-Consumo
¿Cuál es la finalidad de Kafka?
La meta principal de Kafka es **desacoplar** la producción de datos de su consumo, actuando como una **plataforma de streaming de eventos** de alta disponibilidad. Permite que múltiples sistemas lean los mismos datos sin afectarse mutuamente y asegura que la data se maneje en tiempo real y a gran escala.
- **Retención de Datos:** El broker retiene los mensajes por un tiempo (simulado por no eliminarlos).
- **Escalabilidad:** Las particiones permiten dividir la carga de trabajo.
- **Replayability:** Los consumidores pueden volver a leer mensajes viejos si es necesario (cambiando su Offset).
¿Qué pasa después del Consumidor?
Una vez que un consumidor lee y procesa un mensaje, este se convierte en el inicio de la **lógica de negocio**. El consumidor actúa como un **microservicio** que reacciona al evento. Las acciones típicas incluyen:
- **Persistencia (Guardar):** Guardar el evento en una base de datos (e.g., un clic de usuario en una DB analítica).
- **Transformación/Reenvío:** Crear un nuevo evento basado en el actual y publicarlo en otro tópico de Kafka (Flujo de Eventos).
- **Acción Externa (Reacción):** Enviar un correo electrónico, una notificación push o activar un proceso de pago.