Quando uma Dependência Entra em Colapso: A Nossa Análise Pós-Incidente de 22 e 23 de Junho
No dia 22 de junho de 2026, o nosso principal parceiro de processamento assíncrono e gestão de filas de espera, Trigger.dev, sofreu uma falha em cascata multi-região catastrófica. Como a infraestrutura principal da nossa plataforma depende fortemente do motor deles para processar tarefas em segundo plano, webhooks e fluxos de trabalho críticos, esta falha de montante criou imediatamente um incidente de elevada gravidade para a nossa própria aplicação.
A Trigger.dev publicou a sua própria análise de engenharia transparente aqui: Relatório de Incidente da Trigger.dev (22 de junho de 2026). Abaixo está a análise alinhada de como a falha de infraestrutura deles se mapeou diretamente na nossa linha de tempo de engenharia interna e como conseguimos contornar uma falha total através de engenharia.
A Linha Temporal Alinhada
Hora (UTC) | O Que Aconteceu a Montante (Relatório Completo) | O Que Aconteceu Internamente / A Nossa Experiência |
22 de Junho, 19:00 | O Gatilho: A escassez de capacidade da AWS em | As nossas tarefas em segundo plano começam a abrandar silenciosamente. As filas começam a crescer nos bastidores. |
22 de Junho, 20:09 | O Colapso: O plano de controlo de Kubernetes a montante atinge os 100% de CPU, perde o quórum da base de dados e a região | O nosso ambiente de produção deixa de processar execuções. Milhares de tarefas em toda a plataforma ficam bloqueadas no fluxo de trabalho pendente. |
22 de Junho, 21:58 | A engenharia do fornecedor a montante está a combater ativamente um ciclo de "tempestade de reconexão". | Incidente Reportado: São registadas taxas de falha elevadas e é iniciada uma sala de incidentes interna. |
23 de Junho, 00:59 | O fornecedor a montante recomenda que os utilizadores mudem manualmente as cargas de trabalho para a sua região | Líder de Incidente Atribuído: A sala de resposta a incidentes é totalmente ativada com um líder atribuído para gerir a avaliação entre regiões. |
23 de Junho, 01:01 - 02:10 | O fornecedor a montante implementa uma atualização de emergência no painel de controlo para permitir a migração em massa de execuções entre regiões. | Mitigação Ativa: Às 01:10, a equipa cancela manualmente as nossas execuções em fila nos EUA para libertar a capacidade de execução bloqueada da nossa conta e direciona todo o novo tráfego para a região europeia. Às 02:10, as mensagens voltam a ser processadas. |
23 de Junho, 02:02 - 02:33 | O fornecedor a montante está a dimensionar manualmente o cluster de armazenamento de suporte da base de dados. | Gravidade Atualizada para Crítica: Mais de 30 000 das nossas próprias tarefas estão agora em fila e em espera. A equipa publica uma atualização de estado crítica na nossa página de estado pública. |
23 de Junho, 04:35 - 05:05 | As atualizações de infraestrutura a montante reduzem drasticamente as velocidades de execução. | O Gargalo de Webhooks: As taxas de processamento caem. Às 05:05, identificamos que a nossa fila de envio de webhooks é o principal gargalo que não se consegue escoar. |
23 de Junho, 08:38 | A Segunda Cascata: O tráfego global redirecionado sobrecarrega la região europeia do fornecedor, colocando-a completamente offline. | Paralisação Total: Ambas as regiões a montante estão agora efetivamente inativas. Temos mais de 13 000 tarefas congeladas a meio do processo, dependendo inteiramente da recuperação a montante. |
23 de Junho, 10:34 | A engenharia do fornecedor a montante está a ter dificuldades em restabelecer a sua região europeia. | Implementação do Disjuntor (Circuit Breaker): Percebendo que a camada primária de processamento em segundo plano está totalmente paralisada, a nossa equipa muda a abordagem de mitigação de infraestrutura para um desvio arquitetónico. Implementamos uma correção rápida de emergência em todos os ambientes principais de aplicação e API para desativar temporariamente a gestão de tarefas assíncronas. |
23 de Junho, 10:41 | O fornecedor a montante continua a trabalhar no redimensionamento dos nós do plano de controlo. | Alívio Imediato: O desvio arquitetónico funciona perfeitamente. Ao contornar as filas em segundo plano congeladas, os processos críticos da aplicação recorrem a caminhos de execução direta. A engenharia confirma: "Os emails voltaram a fluir." |
23 de Junho, 17:06 | O fornecedor a montante estabiliza finalmente ambas as regiões e restaura as velocidades de processamento. | Fila de Espera Limpa: A engenharia confirma que as nossas filas em ambas as regiões estão completamente vazias. O desempenho do sistema regressa ao normal. |
23 de Junho, 19:31 | A estabilidade pós-recuperação mantém-se. | Incidente Resolvido: Os sistemas estão totalmente operacionais; a equipa entra no fluxo de revisão pós-incidente. |
Principais Conclusões e Avaliação da Nossa Experiência
Embora a análise pós-morte a montante se tenha focado na afinação de bases de dados e na infraestrutura de clusters, a nossa avaliação interna foca-se na degradação suave e na resiliência arquitetónica.
1. O Poder do "Interruptor de Emergência" (Kill Switch)
O momento decisivo da nossa recuperação ocorreu às 10:34 UTC. Quando a região secundária do nosso fornecedor colapsou, deixámos de tentar gerir as filas em segundo plano e passámos a implementar um desvio estrutural.
O Desvio: Ao implementar uma alteração de configuração global para desativar as tarefas em segundo plano, cortámos efetivamente o vínculo com a nossa dependência danificada. Isto forçou as transações críticas dos utilizadores, como os emails de confirmação de reservas, a contornar temporariamente o motor em segundo plano congelado e a processar diretamente.
No espaço de 7 minutos, as funções de negócio principais foram totalmente restauradas para os nossos utilizadores, provando que dispor de caminhos alternativos integrados e comutáveis para grandes dependências de terceiros é um requisito inegociável para uma elevada disponibilidade.
2. Gerir as Armadilhas de Concorrência Multi-Região
Durante a fase de mitigação, navegar num ambiente multi-região apresentou limitações inesperadas na plataforma. As tarefas retidas numa fase intermédia na região dos EUA continuaram a consumir a capacidade de execução global da nossa conta, mesmo depois de termos direcionado a nossa aplicação para a Europa.
Identificar e executar um cancelamento em lote direcionado do grupo retido nos EUA às 01:10 foi fundamental para libertar capacidade de execução na nossa nova região de destino na Europa.
3. Reforço contra o Raio de Ação de Incidentes a Montante
Embora o nosso desvio de emergência tenha salvado o dia para fluxos de extrema importância, como o envio de emails, continuámos a ter mais de 13 000 tarefas paralisadas nas filas congeladas a montante até que o fornecedor recuperasse totalmente.
O Caminho do Futuro: No futuro, estamos a avaliar a conceção de um buffer mais localizado. Para tarefas em segundo plano ou webhooks de saída, estamos a ponderar a implementação de uma fila de registo interna leve que possa armazenar tarefas localmente durante uma interrupção a montante, garantindo a ordem correta durante o reprocessamento.
Resumo
Em última análise, a nossa equipa de engenharia diagnosticou com sucesso uma armadilha complexa de concorrência multi-região, desviou o tráfego e implementou um desvio arquitetónico criativo que salvou a experiência dos nossos utilizadores horas antes de o nosso fornecedor conseguir estabilizar a sua infraestrutura.
Sabemos que este foi um momento muito difícil para a equipa do Trigger.dev. Respeitamo-los e continuamos a manter uma excelente parceria. Este artigo serve simplesmente para partilhar o nosso lado do incidente e a forma como a nossa equipa reagiu.

Comece com o Cal.com gratuitamente hoje!
Experimente uma programação e produtividade sem interrupções, sem taxas ocultas. Registe-se em segundos e comece a simplificar a sua programação hoje, sem necessidade de cartão de crédito!


