Pular para o conteúdo principal

Processamento Assíncrono

Para garantir alta performance e baixa latência na API, muitas operações na QuettaCode são processadas de forma assíncrona.

Quando ocorre?

Operações pesadas ou que dependem de terceiros são enfileiradas para processamento em background (Workers). Exemplos:

  • Envio de mensagens em massa (Broadcast).
  • Geração de relatórios complexos.
  • Processamento de Webhooks recebidos (ex: Mensagem recebida do WhatsApp).
  • Geração de PDFs grandes.

Como funciona para o Consumidor da API?

Ao solicitar uma operação assíncrona, a API geralmente retorna 202 Accepted imediatamente, em vez de esperar a conclusão.

Exemplo: Envio de Campanha

  1. Request: POST /api/v1/campaigns/send
  2. Response: 202 Accepted
    {
    "id": "job_12345",
    "status": "QUEUED",
    "message": "Campanha enfileirada para processamento."
    }

Webhooks e Polling

Para saber o resultado da operação, você tem duas opções:

  1. Webhooks (Recomendado): Configure uma URL para receber notificações de eventos (ex: campaign.finished, message.delivered).
  2. Polling: Consulte periodicamente o status do Job/Recurso (ex: GET /api/v1/jobs/job_12345).

Workers e Filas

Internamente, utilizamos filas (como RabbitMQ ou Kafka) e Workers escaláveis. Isso garante que, mesmo em picos de tráfego (Black Friday, Lançamentos), sua API não trave; o processamento apenas levará um pouco mais de tempo para drenar a fila.