Points Clés
- Journal d'événements monobinaire entièrement écrit en C avec architecture HTTP-native
- Débit soutenu d'environ 50 000 messages par seconde sur un cluster Raft à 3 nœuds
- Latence P99 client mesurée à 3,46 millisecondes sous charge
- Récupération après crash gère environ 8 millions d'offsets en 40-50 secondes après SIGKILL
- Utilise des commandes curl standard comme client — pas de JVM, ZooKeeper ou bibliothèques lourdes requises
- Persistance des données démontrée via une vidéo de 2 minutes montrant la récupération après une terminaison non propre
Résumé Rapide
Un nouveau système de journal d'événements durable est apparu, remettant en cause la complexité architecturale traditionnelle. Ayder représente un changement fondamental vers la simplicité, offrant une persistance de niveau entreprise via un seul binaire écrit en C.
La philosophie centrale du système repose sur une conception HTTP-native, éliminant le besoin d'une infrastructure client complexe. Au lieu d'exiger des environnements d'exécution JVM, une coordination ZooKeeper ou des bibliothèques client lourdes, Ayder accepte les requêtes HTTP standard — ce qui signifie que les développeurs peuvent interagir avec lui en utilisant rien de plus sophistiqué que curl.
Les métriques de performance initiales révèlent des capacités impressionnantes : un débit soutenu de 50 000 messages par seconde sur un cluster Raft à trois nœuds, avec une latence P99 client mesurée à seulement 3,46 millisecondes. Ce qui est peut-être le plus convaincant, c'est la démonstration de récupération après crash — après une terminaison SIGKILL non propre, le système redémarre et vérifie l'intégrité des données pour environ 8 millions d'offsets en moins d'une minute.
L'Architecture
La philosophie de conception d'Ayder représente un départ délibéré des modèles de systèmes distribués contemporains. Construit entièrement en C, le système privilégie le minimalisme et la transparence opérationnelle plutôt que l'étendue des fonctionnalités.
Le modèle de déploiement monobinaire signifie que les opérateurs gèrent un seul fichier exécutable plutôt que de coordonner plusieurs services. Cette approche réduit la complexité de déploiement, élimine les conflits de dépendances et simplifie les procédures de mise à jour. Le binaire contient toute la logique nécessaire pour la persistance, le consensus et la gestion de l'interface HTTP.
L'architecture HTTP-native change fondamentalement la façon dont les applications s'intègrent avec le journal d'événements. Plutôt que d'importer des SDK spécialisés ou de gérer des pools de connexion vers des services de coordination, les développeurs émettent des requêtes HTTP standard. Cette approche offre plusieurs avantages :
- Compatibilité client universelle à travers n'importe quel langage de programmation
- Surface d'attaque réduite grâce à des protocoles standardisés
- Débogage simplifié en utilisant des outils HTTP familiers
- Surcharge mémoire inférieure sans bibliothèques client lourdes
Le système utilise le consensus Raft à travers un cluster à trois nœuds pour assurer la durabilité et la disponibilité. Les opérations d'écriture sont synchronisées sur une majorité de nœuds avant de confirmer la complétion, fournissant des garanties de cohérence forte même pendant les partitions réseau ou les défaillances de nœuds.
"Chiffres (Raft à 3 nœuds, réseau réel, écritures de majorité synchrone, payload 64B) : ~50K msg/s soutenu (wrk2 @ 50K req/s), P99 client ~3,46ms."
— Benchmarks de Performance
Benchmarks de Performance
La validation de performance s'est produite sur un cluster Raft à trois nœuds fonctionnant à travers un environnement réseau réel — pas en conditions de test simulées ou isolées. Le scénario de benchmark utilisait des écritures de majorité synchrone avec des payloads de 64 octets, représentant des tailles de messages d'événement typiques dans les architectures de streaming.
Les résultats démontrent un débit soutenu d'environ 50 000 messages par seconde sous charge continue à 50 000 requêtes par seconde en utilisant l'outil de benchmark wrk2. Ce niveau de débit indique que le système peut gérer l'ingestion d'événements à l'échelle de production sans devenir un goulot d'étranglement.
Les mesures de latence montrent une latence P99 client de 3,46 millisecondes, ce qui signifie que 99 % des requêtes se complètent dans ce délai. Ce profil de performance suggère qu'Ayder peut supporter des applications sensibles à la latence où les temps de réponse cohérents sont critiques.
Chiffres (Raft à 3 nœuds, réseau réel, écritures de majorité synchrone, payload 64B) : ~50K msg/s soutenu (wrk2 @ 50K req/s), P99 client ~3,46ms.
La méthodologie de benchmark met l'accent sur des conditions réelles, fournissant la confiance que ces métriques se traduisent en scénarios de déploiement réels plutôt qu'en mesures de laboratoire idéalisées.
Récupération après Crash
Peut-être la démonstration la plus convaincante de la durabilité d'Ayder est sa capacité de récupération après crash. Le système a été soumis à une terminaison SIGKILL non propre — simulant une défaillance soudaine du serveur ou une perte de puissance sans procédures d'arrêt gracieux.
Après la terminaison forcée, Ayder a redémarré et a vérifié avec succès que tous les offsets et données restaient intacts. Le processus de récupération a géré environ 8 millions d'offsets dans un délai allant de 40 à 50 secondes. Cette vitesse de récupération démontre des mécanismes efficaces de checkpointing et de replay de journal.
La vidéo de démonstration, qui dure environ deux minutes du crash initial jusqu'à la validation complète de la récupération, fournit une preuve visuelle de la résilience du système. Cette capacité répond à une exigence critique pour les systèmes de production : maintenir l'intégrité des données à travers des pannes non planifiées.
Les caractéristiques clés de récupération incluent :
- Vérification automatique des offsets après redémarrage
- Zéro perte de données malgré une terminaison non propre
- Replay rapide de millions d'événements journalisés
- Processus de récupération transparent nécessitant aucune intervention manuelle
Ces métriques de récupération indiquent qu'Ayder implémente des stratégies robustes de logging en écriture avant (write-ahead logging) et de snapshotting, assurant que même les échecs catastrophiques ne compromettent pas la cohérence du journal d'événements.
Opportunité de Partenariat de Conception
Le développeur recherche activement des partenaires de conception précoces pour valider Ayder à travers divers scénarios de production. Cette invitation s'étend aux organisations gérant tout type de workload d'ingestion d'événements ou de streaming.
Les partenaires de conception bénéficieraient d'un accès anticipé à la technologie tout en fournissant des retours qui façonnent la feuille de route. Le système semble prêt pour des tests en conditions réelles, avec une documentation complète incluant des benchmarks, des vidéos de démonstration et des guides de démarrage rapide disponibles dans le dépôt.
Les organisations qui pourraient bénéficier de l'évaluation incluent celles utilisant actuellement :
- Des files d'attente de messages traditionnelles recherchant la simplicité HTTP
- Des architectures d'approvisionnement d'événements (event sourcing) nécessitant de la durabilité
- Des microservices nécessitant une coordination légère
- Des plateformes de streaming privilégiant la récupération après crash
L'appel à partenaires suggère que le projet a maturé au-delà du stade de preuve de concept et est prêt pour une validation plus large. Les adopteurs précoces aideraient à identifier les cas limites, les limites de performance et les modèles d'intégration à travers différents environnements de déploiement.
Perspectives
Ayder représente un retour à la simplicité dans la conception des systèmes distribués. En dépouillant les couches d'abstraction et en exploitant les protocoles HTTP omniprésents, il offre une alternative convaincante aux architectures complexes de journaux d'événements.
La combinaison de haute performance (50K msg/s), de basse latence








