10 points par xguru 2025-03-13 | 1 commentaires | Partager sur WhatsApp
  • Base de données à gestion de versions en temps réel pour des environnements de déploiement légers
  • Optimisée pour le prototypage, l’auto-hébergement, les applications single-tenant et les environnements multi-tenant ultralégers sans backend ni base de données
  • Aucune infrastructure distincte nécessaire → toute la base de données s’exécute côté client, sans besoin d’indexation serveur
  • Architecture offline-first → même si le serveur tombe en panne, le client continue de fonctionner et peut récupérer son état
  • Edge-native → la majorité du traitement est effectuée côté client afin de minimiser la charge serveur
  • Prise en charge de la synchronisation en temps réel → synchronise automatiquement l’état du client et du serveur
    • Lors de l’initialisation, il est possible de configurer facilement un cluster de serveurs en définissant l’emplacement des réplicas dans peers
    • La synchronisation entre serveurs est prise en charge via le protocole de synchronisation, et l’ajout de plusieurs serveurs permet de monter en charge sans modification du code
  • Utilisation de React Hooks
    • Les React Hooks de GoatDB fournissent une solution complète de gestion d’état et permettent des modifications d’état synchrones (mutables)
    • Par exemple, des changements comme task.set('done', true) sont immédiatement reflétés en mémoire, tandis que GoatDB gère automatiquement en arrière-plan le calcul des différences (diffing), le commit dans le stockage local, la synchronisation serveur et la résolution des conflits
  • Modèle de sécurité
    • Chaque nœud conserve une paire de clés publique/privée, et la clé privée n’est jamais exposée à l’extérieur
    • Tous les commits sont signés numériquement, ce qui permet de rejeter automatiquement les modifications falsifiées
    • Le contrôle d’accès aux données est possible via des politiques d’autorisation personnalisées
  • Méthode de résolution des conflits
    • Fusion à trois voies (three-way merge) : lorsque des modifications entrent en conflit, elles sont automatiquement fusionnées et réorganisées
    • Attribution continue d’identifiants selon la méthode Logoot : application d’un système d’identifiants uniques évitant les conflits d’insertion/suppression dans les données

Projets d’exemple

  • Todo → liste de tâches moderne et minimale pour l’auto-hébergement
  • EdgeChat → interface de style ChatGPT entièrement basée sur le navigateur
  • Ovvio → outil de productivité qui utilise GoatDB depuis 2024

1 commentaires

 
zihado 2025-03-13

GOAT... impressionnant