Skip to content

Sem connection pooling nem circuit breaker em handlers HTTP/LLM #3

Description

@pizanao

Descrição

Os handlers `handle_http` e `handle_llm` criam novas conexões a cada invocação. Falhas em serviços externos podem causar cascade failures.

async with httpx.AsyncClient() as client:  # ← novo client por chamada
    response = await client.post(...)

client = ollama.Client()  # ← nova conexão por chamada

Impacto

  • Esgotamento de file descriptors em alta carga
  • Falhas em cascata: serviço lento bloqueia executor
  • Sem retry inteligente com backoff exponencial

Correção sugerida

  1. Criar `httpx.AsyncClient` como singleton com connection pooling
  2. Adicionar `pybreaker` (circuit breaker) para chamadas externas
  3. Implementar retry com exponential backoff configurável

Referência

  • handlers.py: `handle_http()`, `handle_llm()`

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions