- 軽量なデプロイ環境向けのリアルタイム・バージョン管理データベース
- プロトタイピング、セルフホスティング、シングルテナント(Single-Tenant)アプリ、そしてバックエンドやDBのない超軽量マルチテナント(Multi-Tenant)環境に最適化
- 追加インフラ不要 → DB全体をクライアント上で実行し、サーバー側のインデックス作成が不要
- オフラインファースト(Offline-First)構造 → サーバーがダウンしてもクライアントで継続動作し、復旧可能
- エッジネイティブ(Edge-Native) → 処理の大半をクライアントで実行し、サーバー負荷を最小化
- リアルタイム同期をサポート → クライアントとサーバーの状態を自動で同期
- 初期化時に
peersへレプリカの場所を設定することで、サーバークラスターを簡単に構成可能
- 同期プロトコルによりサーバー間同期をサポートし、複数サーバーを追加してもコード変更なしでスケール可能
- React Hooksを使用
- GoatDBのReact Hooksは完全な状態管理ソリューションを提供し、同期的(mutable)な状態変更が可能
- たとえば、
task.set('done', true)のような変更は即座にメモリへ反映され、GoatDBが自動で差分計算(diffing)、ローカルストレージへのコミット、サーバー同期、競合解決をバックグラウンドで処理
- セキュリティモデル
- 各ノードは公開鍵/秘密鍵のペアを保持し、秘密鍵は決して外部に公開されない
- すべてのコミットはデジタル署名され、改ざんされた変更は自動的に拒否される
- カスタム権限ポリシーによりデータアクセス制御が可能
- 競合解決方式
- 3方向マージ(Three-Way Merge) : 変更が競合した場合、自動マージして整理
- Logoot方式の連続ID割り当て : データ内の挿入/削除競合を防ぐ一意識別子システムを適用
サンプルプロジェクト
- Todo → セルフホスティング向けの最小限のモダンなToDoリスト
- EdgeChat → 完全なブラウザベースのChatGPTスタイルインターフェース
- Ovvio → 2024年からGoatDBを使用している生産性ツール
1件のコメント
GOAT..やばい