Adiós a los Cron Jobs dispersos: El planificador de tareas centralizado de Heartbeat

2025-08-01
Adiós a los Cron Jobs dispersos: El planificador de tareas centralizado de Heartbeat

Heartbeat usaba múltiples Cron Jobs para gestionar tareas programadas, lo que resultaba en altos costes de mantenimiento y errores frecuentes. Este artículo describe cómo construyeron un planificador de tareas centralizado y basado en bases de datos, utilizando una única tabla de base de datos `ScheduledTasks` y un único Cron Job para gestionar todas las tareas programadas. Aprovechando AWS SQS para el procesamiento asincrónico, el sistema garantiza la ejecución fiable de las tareas, mecanismos de reintento y una supervisión robusta. Este enfoque aborda problemas como el caos en la gestión de tareas, el difícil tratamiento de errores y simplifica la adición de nuevas tareas programadas.

Leer más

Desarrollo Guiado por Tipos: Cómo los Tipos Simplifican Problemas Complejos de Programación

2024-12-19
Desarrollo Guiado por Tipos: Cómo los Tipos Simplifican Problemas Complejos de Programación

Este artículo explora el concepto de "Desarrollo Guiado por Tipos", donde el autor, basándose en su experiencia con el gran proyecto Heartbeat en Typescript (más de 300.000 líneas), demuestra cómo el sistema de tipos de Typescript simplifica problemas complejos de programación. La idea principal es que, al aprovechar eficazmente el sistema de tipos, permitiendo que los tipos fluyan libremente a través de todas las capas de la aplicación, comenzando nuevas funciones con definiciones de tipos, haciendo que los estados ilegales sean irrepresentativos, analizando en lugar de validar datos y manteniendo la honestidad y especificidad del código, se reducen drásticamente los errores y se mejora la eficiencia del desarrollo. El autor también comparte técnicas para usar funciones puras como puentes de tipos y el sistema de tipos como una herramienta de introspección, reconociendo la necesidad ocasional de eludir las restricciones del sistema de tipos.

Leer más