À propos du projet

Kahuna est un cluster de serveurs conçu pour résoudre les problèmes courants des systèmes distribués : verrouillage distribué, stockage cohérent de clés/valeurs et séquences idempotentes d'identifiants ordonnés. Il offre aux développeurs des primitives prêtes à l'emploi pour bâtir des applications distribuées fiables et évolutives. Fonctionnalités principales : - Verrouillage distribué : synchronise l'accès aux ressources partagées entre les nœuds afin d'éviter les conditions de concurrence et de maintenir la consistance des données. - Store clé/valeur : stocke et récupère des données structurées au sein d'un cluster avec tolérance aux pannes et fort débit, adapté aux métadonnées, caches ou état applicatif. - Séquenceur distribué : génère des identifiants ordonnés globalement, utiles pour les bases de données, files de messages et systèmes événementiels. Architecture : Kahuna combine un moteur de stockage évolutive avec un consensus de type Raft. Les données sont organisées en partitions gérées indépendamment. Il utilise le contrôle de concurrence multi-version (MVCC) pour l'isolation par instantané, éliminant les conflits lecture-écriture. Chaque partition exécute son propre groupe Raft pour la réplication et la coordination des écritures basée sur un leader. Les transactions utilisent un commit en deux phases (2PC) avec MVCC, supportant à la fois les modes de contrôle de concurrence optimiste et pessimiste. Le système scale horizontalement grâce au fractionnement dynamique des partitions et à leur redistribution, et maintient la disponibilité via la réplication Raft et la récupération automatique. Détails techniques : - Conçu en .NET ; disponible en tant qu'outil global (`Kahuna.Server` et `Kahuna.Control`). - Ports : 2070 (HTTP/gRPC), 2071 (HTTPS), 2072 (gRPC en clair). - Chemins de stockage: Linux/macOS `~/.local/share/kahuna`, Windows `%LOCALAPPDATA%\kahuna`. - Supporte HTTPS via certificat et mTLS pour l'authentification des nœuds. - Operator Kubernetes (alpha) disponible pour la gestion automatisée du cluster. - Testé avec Jepsen pour la correction dans des contextes de partitions réseau, de crashs et de dérive d'horloge. - Tableau de bord web inclus. License : MIT.