DEV Community

William Rodriguez
William Rodriguez

Posted on

El patrón request-response que Kafka no te da gratis.

Día 05 de la serie técnica WKafka Open Source.

Construir sistemas distribuidos confiables exige pasar de bloqueos HTTP síncronos a workers de eventos asíncronos. WKafka lo hace directo.

Los Problemas Reales

  • Errores HTTP 504 Gateway Timeout en tareas de procesamiento pesado
  • Acoplamiento rígido entre APIs frontales y workers de procesamiento
  • Pérdida de notificaciones cuando un worker se cae a mitad del cálculo

La Implementación

from wkafka import WKafka

kafka = WKafka(servers=["localhost:9092"], client_id="task_worker_node")

# Worker Node consumiendo tareas y respondiendo con resultados
@kafka.consumer(topic="tasks", format="json")
def on_task(msg):
    result = compute_heavy_work(msg.value)
    kafka.produce(topic="results", key=msg.key, value=result)
Enter fullscreen mode Exit fullscreen mode

Por qué esta arquitectura gana

  • Flujo Desacoplado: El cliente produce la tarea; el worker consume, calcula y responde.
  • Correlation IDs: Empareja peticiones y respuestas mediante claves de mensaje.
  • Escalado Infinito: Añade pods de workers bajo demanda sin cambiar el cliente.

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.

Kafka #Python #DataEngineering #OpenSource #Wisrovi

Top comments (0)