次のステップ
todo アプリが動くようになりました。ここから先は、追加したいものに応じて次のいずれかの筋道をたどってください。
plasma が何をしているかを理解する
Section titled “plasma が何をしているかを理解する”- メンタルモデル — plasma が構築されている 3 つのレイヤー
- Schema と mutator — isomorphic な型が実際にどう機能するか
- Optimistic vs canonical — なぜ client はサーバーより先に mutation を見るのか、そして何がそれらを整合させるのか
- Push, pull, rebase — sync ループの詳細
- clientID vs clientGroupID — アイデンティティモデル
- Change log と cookie — sync ループが受け渡すデータ構造
schema を育てる
Section titled “schema を育てる”- Schema DSL — すべての column type、modifier、option
- Ref と cascade — 外部キー、
onDelete、subscript の使い勝手 - マイグレーション —
ensureSchemaとrunMigrationsが schema の進化をどう扱うか
マルチユーザーのデータを扱う
Section titled “マルチユーザーのデータを扱う”- Auth と permission —
auth.read、auth.write、そしてそれらが両側でどう実行されるか - Conflict resolution — サーバーの行と client の行が rebase だけでは整合できないとき
file とリッチな state を追加する
Section titled “file とリッチな state を追加する”- File と blob —
file()column type、R2 storage、usePlasmaFile - CRDT column — G-Counter / PN-Counter / LWW-Register / OR-Set
- 暗号化 —
.encrypted()column、DEK の配線、at-rest vs E2EE のトレードオフ
リリースする
Section titled “リリースする”- デプロイ — Wrangler、D1、R2、環境の配線
- テスト — client 向けの fake-indexeddb、server 向けの Miniflare +
@cloudflare/vitest-pool-workers - Devtools — ページ内パネルと Chrome DevTools bridge
高度な機能に手を伸ばす
Section titled “高度な機能に手を伸ばす”- オフラインモード —
PlasmaClientOptions.offlineとテーブル単位のchangeLogSuppressed - マルチリージョン —
SequencerDOと causal cookie - Live query の詳細 —
subscribeDelta、whenReady、IVM の適格性
実際のアプリ
Section titled “実際のアプリ”- Todo アプリ — クイックスタートを、デプロイ可能な完全なプロジェクトへ発展させたもの
- file 付きのオフラインノート — オフラインモード + 画像添付 + R2
何かが壊れた
Section titled “何かが壊れた”- トラブルシューティング — 症状ごとに索引化されています。エラーメッセージが出たなら、ここから始めてください。