File de travaux distribuée et tolérante aux pannes
- Hatchet remplace les files d’attente ou systèmes pub/sub existants, difficiles à gérer, afin de concevoir des charges de travail durables capables de se remettre des échecs et de résoudre des problèmes tels que la concurrence, l’équité et la limitation de débit.
- Au lieu de gérer votre propre file de travaux ou système pub/sub, vous pouvez utiliser Hatchet pour répartir des fonctions entre une série de workers avec un minimum de configuration ou d’infrastructure.
Avantages de Hatchet
- Planification à très faible latence et haut débit
- Hatchet est construit sur une file à faible latence avec un temps de démarrage moyen de
25ms, offrant un équilibre optimal entre capacité d’interaction en temps réel et fiabilité nécessaire aux tâches critiques.
- Concurrence, équité et limitation de débit
- Des stratégies comme FIFO, LIFO, Round Robin et les Priority Queues sont implémentées comme stratégies intégrées de Hatchet, ce qui permet de contourner les problèmes classiques de montée en charge avec une configuration minimale.
- Résilience dès la conception
- Grâce à des politiques de retry personnalisées et à une gestion des erreurs intégrée, Hatchet garantit une reprise rapide des tâches après des échecs temporaires.
Visibilité et contrôle renforcés
- Observabilité
- Toutes les exécutions sont entièrement interrogeables, ce qui permet d’identifier rapidement les problèmes.
- Exécution durable (pratique)
- Vous pouvez rejouer les événements et redémarrer manuellement une exécution à une étape précise d’un workflow.
- Cron
- Vous pouvez planifier l’exécution répétée de fonctions.
- Planification ponctuelle
- Vous pouvez planifier l’exécution d’une fonction à une heure et une date spécifiques.
- Protection contre les pics
- Atténue les pics de trafic et n’exécute que ce que le système peut supporter.
- Streaming progressif
- Vous pouvez vous abonner aux mises à jour selon l’avancement des workers d’arrière-plan.
Exemples de cas d’usage
- Équité pour l’IA générative
- Hatchet permet de répartir équitablement les requêtes entre les workers afin d’éviter qu’un utilisateur très actif ne surcharge le système.
- Traitement par lots pour l’indexation de documents
- Hatchet peut gérer le traitement par lots à grande échelle de documents, d’images et d’autres données, et reprendre le travail en cours en cas d’échec.
- Orchestration de workflows pour les systèmes multimodaux
- Hatchet peut coordonner des entrées et sorties multimodales et prendre en charge des exécutions complètes de type DAG.
- Exactitude pour le traitement piloté par événements
- Il peut réagir à des événements externes ou internes au système et rejouer automatiquement les événements.
Démarrage rapide
- Hatchet prend en charge des SDK open source pour Python, Typescript et Go.
- Pour commencer, vous pouvez consulter la documentation Hatchet ou le dépôt de démarrage rapide.
Dépôts SDK
- Hatchet fournit par défaut un SDK Go.
- Un SDK Typescript est également disponible.
- En cas de problème lié à un SDK, vous pouvez soumettre une issue dans le dépôt concerné.
Existe-t-il une version cloud managée de Hatchet ?
- Oui, une version cloud est proposée à certaines entreprises qui aident à construire et façonner le produit pendant la période bêta.
Existe-t-il une version auto-hébergée de Hatchet ?
- Oui, la documentation contient les instructions pour les conteneurs Docker open source destinés à l’auto-hébergement.
Comment cela se compare-t-il aux alternatives ? (Celery, BullMQ)
- Pourquoi avoir créé une autre file managée ?
- L’objectif était notamment de bénéficier des avantages d’une file transactionnelle complète, en particulier pour les exécutions de type DAG, avec la conviction forte que Postgres peut remplacer la plupart des cas d’usage de file.
- Beaucoup de files reposent sur Redis, et si l’on n’y prend pas garde, des pertes de données dues à un OOM peuvent survenir ; avec PG, ces problèmes peuvent être évités.
Problèmes
- Vous pouvez signaler les bugs découverts via les issues GitHub.
- Comme le projet en est à ses débuts, il est préférable de prendre d’abord contact sur Discord avant de demander des fonctionnalités complexes.
Si vous souhaitez contribuer
- Consultez la documentation de contribution et indiquez sur le canal Discord #contributing sur quoi vous souhaitez travailler afin d’aider à orienter le projet et de faciliter la collaboration.
Avis de GN⁺
- Hatchet semble être une solution qui réduit la complexité de la gestion des files de travaux dans les systèmes distribués tout en offrant haute disponibilité et tolérance aux pannes, particulièrement utile pour le traitement de données à grande échelle et les services en temps réel.
- Par rapport aux autres systèmes de file utilisés sur le marché, la stabilité et la scalabilité obtenues grâce à l’usage de Postgres constituent un avantage notable.
- Parmi les points à considérer lors de l’adoption de Hatchet figurent la compatibilité avec l’infrastructure existante, la migration des données et le niveau de compétence technique de l’équipe.
- Les fonctions avancées de visibilité et de contrôle offertes par Hatchet peuvent faciliter la surveillance des performances du système et la résolution des problèmes, réduisant ainsi la charge de travail des équipes de développement et d’exploitation.
- Hatchet étant encore en phase bêta, une validation suffisante est nécessaire en matière de stabilité et de fonctionnalités, ainsi que des tests approfondis avant une application à grande échelle.
1 commentaires
Commentaires sur Hacker News
SKIP LOCKED, entre autres, mais a changé d’entreprise. Il se demande si Hatchet convient à ce type de cas d’usage.