- 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
GOAT... impressionnant