En bref
Hekla est un runtime spécialisé dans l’event sourcing qui se distingue par l’introduction d’un langage de programmation dédié, conçu pour modéliser et orchestrer les flux d’événements de manière na...
👋 À propos de Hekla, an event sourcing runtime with its own language
À propos de Hekla, an event sourcing runtime with its own language
Hekla est un runtime spécialisé dans l’event sourcing qui se distingue par l’introduction d’un langage de programmation dédié, conçu pour modéliser et orchestrer les flux d’événements de manière native. Développé par l’équipe derrière le site tqwewe.com, Hekla vise à combler l’écart entre la théorie de l’event sourcing et son implémentation pratique, en offrant une plateforme unifiée où la logique métier, la persistance et la relecture d’événements sont expressément prises en charge par le langage lui-même.
Contrairement aux frameworks généralistes qui nécessitent des bibliothèques tierces pour gérer les événements, Hekla embarque un compilateur et un runtime capables de comprendre les concepts d’agrégats, de projections et de flux temporels. Le langage — souvent désigné dans la documentation comme HCL (Hekla Composition Language) — est typé statiquement et orienté événement, ce qui permet de décrire des invariants métier directement dans le code source. Cette approche réduit le fossé entre la modélisation conceptuelle et l’exécution, tout en automatisant des tâches complexes comme le versioning d’événements ou la gestion des snapshots.
Le runtime s’exécute sur une machine virtuelle légère, capable de tourner aussi bien dans un conteneur Docker que sur du matériel nu. Il exploite le principe de séparation des préoccupations : le développeur écrit des définitions d’événements et des gestionnaires, et Hekla se charge de la sérialisation, du stockage et de la distribution des événements. Bien que le projet soit encore jeune, il attire l’attention des équipes qui souhaitent déployer des architectures event-driven sans la complexité habituelle des piles techniques hétéroclites.
Fonctionnalités principales
- Langage dédié à l’event sourcing : Le HCL permet de déclarer des types d’événements, des états d’agrégats et des règles de transition de manière déclarative. Le compilateur vérifie la cohérence des flux et interdit les mutations non événementielles.
- Gestion automatique de la persistance : Hekla intègre nativement des connecteurs vers EventStoreDB, PostgreSQL et Apache Kafka. Les événements sont écrits de façon transactionnelle et replays possibles sans code supplémentaire.
- Projections intégrées : Le runtime offre un mécanisme de projections stateful et stateless, avec mise à jour incrémentale. Les projections peuvent être interrogées via une API REST générée automatiquement.
- Agrégats avec invariants forts : Le langage impose la définition d’invariants sur les agrégats. Toute tentative de commande violant un invariant est rejetée avant même l’écriture de l’événement.
- Système de typage événementiel avancé : Les événements sont typés avec des schémas versionnés. Hekla supporte la migration ascendante et descendante (upcasting/downcasting) de façon déclarative.
- Outils de développement : Un CLI permet de simuler des flux, de visualiser l’état des agrégats en temps réel et de générer des squelettes de code. Un tableau de bord web expose les métriques de latence, le nombre d’événements et les erreurs.
- Support de la programmation réactive : Les flux d’événements peuvent être souscrits via des observables asynchrones, facilitant l’intégration avec des systèmes de streaming ou des interfaces utilisateur en temps réel.
- Déploiement multi‑nœuds : Le runtime gère la réplication et la partition des événements sur plusieurs instances, avec une cohérence forte garantie par un algorithme de consensus inspiré de Raft.
Tarification
Hekla est disponible sous trois formules, facturées en dollars américains. Les montants ci‑dessous sont convertis approximativement en dollars canadiens.
| Plan | Prix (CAD) | Détails |
|---|---|---|
| Communauté | Gratuit | Limité à 3 agrégats, 10 000 événements/jour, pas de support SLA. Accès au langage et au runtime en local. |
| Pro | ≈ 42 $ CAD/mois (facturé 30 $ US) | Agrégats illimités, jusqu’à 500 000 événements/jour, support par courriel, projections REST sans limite. |
| Entreprise | ≈ 140 $ CAD/mois (facturé 100 $ US) | Événements illimités, clustering multi‑région, SSO, audit logs, support prioritaire 24/7, contrats personnalisés. |
Tous les plans incluent les mises à jour du langage et du runtime. Un essai gratuit de 14 jours est offert pour les plans Pro et Entreprise. Le paiement s’effectue en dollars américains. Les taxes applicables (TPS/TVQ) sont ajoutées pour les clients canadiens.
Cas d’utilisation
- Systèmes financiers et de conformité : Hekla est adapté aux applications bancaires où chaque transaction doit être tracée et où les audits exigent un historique immuable. Les invariants du langage assurent l’intégrité des soldes.
- Plateformes de commerce électronique : La gestion des paniers, des commandes et des inventaires bénéficie d’une modélisation événementielle claire. Les projections permettent d’obtenir des vues temps réel des stocks.
- Internet des objets (IoT) : Les flux de capteurs peuvent être ingérés directement comme événements. Hekla facilite le déclenchement de règles métier en fonction de seuils et l’analyse différée.
- Jeux multijoueurs : L’état de jeu est représenté comme une séquence d’actions. Hekla assure la cohérence entre les joueurs et permet le rejeu (replay) pour déboguer les parties.
- Applications santé et médicales : Le versioning d’événements et la traçabilité sont cruciaux pour les dossiers patients. Les projections aident à produire des rapports de traitement.
Notre avis
Hekla s’inscrit dans une niche très spécifique : offrir un runtime et un langage dédié exclusivement à l’event sourcing. Pour les équipes qui maîtrisent déjà ce paradigme, Hekla apporte une productivité significative en éliminant le besoin de configurer des piles complexes (Kafka, EventStore, projections maison). Le langage HCL, bien que nécessitant un apprentissage, force une discipline de modélisation qui prévient les erreurs courantes.
Cependant, l’outil présente des limites notables. Son écosystème est restreint : peu de bibliothèques tierces, une communauté encore petite et une documentation qui gagnerait en exemples concrets. Le langage propriétaire peut être un frein pour les organisations qui préfèrent des solutions comme Temporal (orchestration en Go, Java, Python) ou des frameworks open source (Axon Framework, Eventuate). De plus, le modèle de tarification, bien que raisonnable pour les petites équipes, peut devenir coûteux à grande échelle (facturation à l’événement pour le plan Entreprise).
Public cible : développeurs et architectes expérimentés en event sourcing, travaillant dans des contextes où la cohérence forte et la traçabilité sont critiques. Hekla conviendra moins aux projets simples ou aux équipes qui cherchent à minimiser l’apprentissage d’un nouveau langage.
En résumé, Hekla est une proposition audacieuse et bien conçue pour un usage spécialisé. Nous recommandons de l’évaluer sur un projet pilote non critique, en mesurant le gain de productivité par rapport à la courbe d’apprentissage. À surveiller pour l’évolution de son écosystème et l’adoption par la communauté.
Envie d'essayer Hekla, an event sourcing runtime with its own language ?
Visiter le site →Soyez le premier à donner votre avis !
Partagez votre expérience avec cet outil pour aider la communauté.
C'est calme ici...
Lancez une discussion ! Quelle est votre expérience ?
Aucun tutoriel pour le moment
Connaissez-vous un bon tutoriel ? Partagez-le !
📸 Screenshots de la communauté
Aucun screenshot pour le moment. Soyez le premier a en partager !
Aucune alternative pour le moment.