review-dynamodb

star 0

DynamoDBテーブル設計のレビューを行う。アクセスパターン網羅性、PK/SKパターン、GSI設計を技術仕様書と照合する。

shinobu-takahata By shinobu-takahata schedule Updated 2/25/2026

name: review-dynamodb description: DynamoDBテーブル設計のレビューを行う。アクセスパターン網羅性、PK/SKパターン、GSI設計を技術仕様書と照合する。 user-invocable: true argument-hint: "[file-or-directory]"

DynamoDB Design Review

DynamoDB シングルテーブル設計のレビューを実施する。

レビュー観点

1. 技術仕様書との整合性

  • PK/SK パターンが docs/architecture/technical-spec.md セクション5 と一致しているか
  • GSI1, GSI2 の定義が仕様書通りか
  • アクセスパターン #1〜#11 が全て実装されているか

2. アクセスパターンの網羅性

  • 全ユースケースに対応するクエリが実装されているか:
    • レシピ CRUD(#1, #2, #3)
    • キーワード検索(#4 自分、#5 横断)
    • 共有リクエスト管理(#6, #7, #8)
    • 共有関係管理(#9, #10, #11)
  • 新しいユースケースが追加された場合、既存のキー設計で対応可能か
  • 不足しているアクセスパターンがないか

3. PK/SK パターンの妥当性

  • パーティションキーの分散性(ホットパーティション回避)
  • ソートキーの設計が範囲クエリに適しているか
  • begins_with のプレフィックス設計が正しいか
  • 複合ソートキー(KW#{keyword}#RECIPE#{recipeId})の順序が適切か

4. GSI 設計

  • GSI1(共有リクエスト受信、共有関係ゲスト視点)の使い方が正しいか
  • GSI2(共有関係オーナー視点)の使い方が正しいか
  • GSI の射影属性(ProjectionType)が適切か(KEYS_ONLY vs ALL vs INCLUDE)
  • 不要な GSI がないか / 不足する GSI がないか

5. 書き込みパターン

  • BatchWriteItem の使い方(レシピ + キーワードインデックスの同時書き込み)
  • TransactWriteItems の使い方(共有リクエスト承認時の一貫性保証)
  • 条件付き書き込み(ConditionalExpression)による競合制御
  • 削除時の関連データクリーンアップ(レシピ削除時のキーワードインデックス削除)

6. パフォーマンスとコスト

  • Read/Write キャパシティの見積もり
  • 横断検索時のクエリ数の見積もり(共有ユーザー数 × 1 Query)
  • アイテムサイズの見積もり(400KB 制限に対して余裕があるか)
  • スパースインデックスの活用(GSI に投影するアイテムの選択性)

手順

  1. CDK のテーブル定義と Lambda のデータアクセスコードを読み込む
  2. 技術仕様書セクション5 と照合
  3. 上記の観点で分析
  4. 問題を報告し修正案を提示

報告フォーマット

## DynamoDB Review 結果

### 仕様との差異
- テーブル定義・アクセスパターンの仕様書との差分

### 設計上の問題
- [重大度: Critical/High/Medium/Low] 説明 → 修正案

### アクセスパターン網羅性
- 実装済み: #1, #2, ...
- 未実装: #X, #Y, ...

### パフォーマンス・コスト
- 懸念事項と最適化案
Install via CLI
npx skills add https://github.com/shinobu-takahata/dinner-log --skill review-dynamodb
Repository Details
star Stars 0
call_split Forks 0
navigation Branch main
article Path SKILL.md
More from Creator
shinobu-takahata
shinobu-takahata Explore all skills →