Sobre o projeto

Kahuna é um cluster de servidores projetado para resolver problemas comuns de sistemas distribuídos: bloqueio distribuído, armazenamento chave/valor consistente e sequências de IDs ordenadas e idempotentes. Ele fornece aos desenvolvedores primitivas prontas para construir aplicações distribuídas confiáveis e escaláveis. Principais capacidades: - Bloqueio Distribuído: sincroniza o acesso a recursos compartilhados entre nós para evitar condições de corrida e manter a consistência dos dados. - Armazenamento Chave/Valor: armazena e recupera dados estruturados em um cluster com tolerância a falhas e alto throughput, adequado para metadados, caches ou estado de aplicações. - Sequenciador Distribuído: gera identificadores ordenados globalmente, úteis para bancos de dados, filas de mensagens e sistemas orientados a eventos. Arquitetura: Kahuna combina um motor de armazenamento escalável com consenso baseado em Raft. Os dados são organizados em partições gerenciadas independentemente. Ele usa Controle de Concorrência Multi-Versão (MVCC) para isolamento de snapshot, eliminando conflitos de leitura-escrita. Cada partição executa seu próprio grupo Raft para replicação e coordenação de escrita baseada em líder. As transações usam commit de duas fases (2PC) com MVCC, suportando modos de controle de concorrência otimista e pessimista. O sistema escala horizontalmente por meio de divisão e redistribuição dinâmica de partições, e mantém a disponibilidade por meio de replicação Raft e recuperação automática. Detalhes técnicos: - Desenvolvido com .NET; disponível como ferramenta global (Kahuna.Server e Kahuna.Control). - Portas: 2070 (HTTP/gRPC), 2071 (HTTPS), 2072 (gRPC em texto claro). - Caminhos de armazenamento: Linux/macOS ~/.local/share/kahuna, Windows %LOCALAPPDATA%\kahuna. - Suporta HTTPS via certificado e TLS mútuo para autenticação de nós. - Kubernetes Operator (alfa) disponível para gerenciamento automatizado de cluster. - Testado com Jepsen para correção sob partições de rede, falhas e desvio de relógio. - Painel web incluído. Licença: MIT.