Adeus, Cron Jobs Espalhados: O Planejador de Tarefas Centralizado do Heartbeat

2025-08-01
Adeus, Cron Jobs Espalhados: O Planejador de Tarefas Centralizado do Heartbeat

O Heartbeat usava vários Cron Jobs para gerenciar tarefas agendadas, resultando em altos custos de manutenção e erros frequentes. Este artigo descreve como eles construíram um planejador de tarefas centralizado e baseado em banco de dados, usando uma única tabela de banco de dados `ScheduledTasks` e um único Cron Job para gerenciar todas as tarefas agendadas. Aproveitando o AWS SQS para processamento assíncrono, o sistema garante a execução confiável de tarefas, mecanismos de repetição e monitoramento robusto. Essa abordagem aborda problemas como caos no gerenciamento de tarefas, tratamento de erros difícil e simplifica a adição de novas tarefas agendadas.

Leia mais
Desenvolvimento agendamento de tarefas

Desenvolvimento Guiado por Tipos: Como os Tipos Simplificam Problemas Complexos de Programação

2024-12-19
Desenvolvimento Guiado por Tipos: Como os Tipos Simplificam Problemas Complexos de Programação

Este artigo explora o conceito de "Desenvolvimento Guiado por Tipos", no qual o autor, com base na experiência com o grande projeto Heartbeat em Typescript (mais de 300.000 linhas), demonstra como o sistema de tipos do Typescript simplifica problemas complexos de programação. A ideia principal é que, ao utilizar efetivamente o sistema de tipos, permitindo que os tipos fluam livremente por todas as camadas do aplicativo, começando novos recursos com definições de tipos, tornando estados ilegais irrepresentáveis, analisando em vez de validar dados e mantendo a honestidade e especificidade do código, os bugs são drasticamente reduzidos e a eficiência do desenvolvimento é melhorada. O autor também compartilha técnicas para usar funções puras como pontes de tipos e o sistema de tipos como uma ferramenta de introspecção, reconhecendo a necessidade ocasional de contornar as restrições do sistema de tipos.

Leia mais