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
- Request:
POST /api/v1/campaigns/send - 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:
- Webhooks (Recomendado): Configure uma URL para receber notificações de eventos (ex:
campaign.finished,message.delivered). - 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.