プロフィール写真のwrite lifecycle

プロフィール写真のwrite lifecycle A lifecycle diagram generated by Archify. 01 / upload / replace 02 / 本流から分かれる遷移 03 / Outcomes prepare · operationとversion · upload / replace 01 prepare operationとversion object登録 · 3件・x-upsert: false · upload / replace 02 object登録 3件・x-upsert: false activate · 1 transaction · upload / replace 03 activate 1 transaction 有効 · 新metadataが現行 · upload / replace 04 有効 新metadataが現行 cleanup · 置換前を削除 · upload / replace 05 cleanup 置換前を削除 未完了operation · 新規writeを拒否 · 本流から分かれる遷移 未完了operation 新規writeを拒否 失効 · metadataを先に無効化 · 本流から分かれる遷移 失効 metadataを先に無効化 削除完了 · 原本と派生を削除 · 本流から分かれる遷移 削除完了 原本と派生を削除 全件成功 1 transactionで確定 置換前object 途中失敗 cleanup後に再開 delete要求 Legend start active state decision terminal success failure / exit

順序の要点

  • • 3 objectを `x-upsert: false` で登録する
  • • 全件成功してから1 transactionで有効化する
  • • deleteは版一致を確認し失効させてから消す

途中失敗の扱い

  • • targetごとに最大1件のdurable operationを残す
  • • 未完了operation中は新規writeを拒否する
  • • cleaned objectだけを記録して冪等に再開する

権限と記録

  • • write roleはtable権限を持たない
  • • review済みの関数だけを実行する
  • • auditはactor・action・outcome・時刻だけ