予約とGoogle Calendarの整合性――二重予約をどの時点で再検査するか
公開コードに基づく一次資料分析本稿はL Harnessの開発元が、公開リポジトリの固定コミットを一次資料として分析した技術研究ノートです。第三者による独立評価ではありません。
空き枠表示から確定までに外部予定が増えた場合、古い空き情報による二重予約をどこで検出し、片側だけ成功した状態をどう扱うか。
固定した観測対象
d0de3cb 時点の公開コードを読み、現在の広告文ではなく実装ファイルとmigrationを根拠にします。コードから観測できること
- booking route、calendar route、booking-calendar-sync serviceが分離される。画面表示時の空き判定と、確定処理中の外部イベント作成は別の整合性問題である。
- 外部CalendarはD1 transactionの対象にできない。D1予約成功・Calendar失敗、Calendar成功・応答喪失などの中間状態を識別して再試行可能にする必要がある。
- 研究では成功予約だけでなく、競合、OAuth期限切れ、API timeout、同一要求再送を発生させ、残ったD1行とCalendar event IDを照合する。
再現・追加測定の手順
- 空き枠取得後に外部予定を追加する
- 確定APIを同じ枠へ並列送信する
- Calendar作成直後に応答失敗を注入する
- D1・Calendar・通知の3状態を照合する
この資料だけでは証明できないこと
- Google側のeventual consistencyや利用Calendar設定で結果が変わる。
- テスト用Calendarの結果を全組織の権限設定へ一般化しない。
このページは新しいcommit、実測ログ、API仕様変更が得られた時点で更新します。古い観測条件と現在仕様を混同しないため、固定commitへのリンクを残します。