Abschied von verstreuten Cron Jobs: Heartbeats zentralisierter Task-Scheduler

2025-08-01
Abschied von verstreuten Cron Jobs: Heartbeats zentralisierter Task-Scheduler

Heartbeat verwendete zuvor mehrere Cron Jobs, um geplante Aufgaben zu verwalten, was zu hohen Wartungskosten und häufigen Fehlern führte. Dieser Artikel beschreibt, wie sie einen zentralisierten, datenbankbasierten Task-Scheduler entwickelt haben, der eine einzige Datenbanktabelle `ScheduledTasks` und einen einzigen Cron Job verwendet, um alle geplanten Aufgaben zu verwalten. Durch die Nutzung von AWS SQS für die asynchrone Verarbeitung stellt das System eine zuverlässige Aufgabenabwicklung, Wiederholungsmechanismen und ein robustes Monitoring sicher. Dieser Ansatz behebt Probleme wie Chaos bei der Aufgabenverwaltung, schwierige Fehlerbehandlung und vereinfacht das Hinzufügen neuer geplanter Aufgaben.

Mehr lesen
Entwicklung Aufgabenplanung

Typengetriebene Entwicklung: Wie Typen komplexe Programmierprobleme vereinfachen

2024-12-19
Typengetriebene Entwicklung: Wie Typen komplexe Programmierprobleme vereinfachen

Dieser Artikel untersucht das Konzept der „typengetriebenen Entwicklung“, wobei der Autor anhand seiner Erfahrungen mit dem umfangreichen Heartbeat-Typescript-Projekt (über 300.000 Zeilen) zeigt, wie das Typsystem von Typescript komplexe Programmierprobleme vereinfacht. Die Kernidee besteht darin, das Typsystem effektiv zu nutzen, Typen den freien Fluss über alle Anwendungsschichten zu ermöglichen, neue Funktionen mit Typdefinitionen zu beginnen, ungültige Zustände nicht darstellbar zu machen, Daten zu parsen statt zu validieren und Ehrlichkeit und Spezifität im Code beizubehalten. Dadurch werden Bugs drastisch reduziert und die Entwicklungseffizienz verbessert. Der Autor teilt auch Techniken, wie man reine Funktionen als Typenbrücken und das Typsystem als Introspektionswerkzeug verwendet, und räumt ein, dass es gelegentlich notwendig sein kann, Typsystembeschränkungen zu umgehen.

Mehr lesen