scalardb-transaction
ScalarDBのトランザクション設計を行います。トランザクション境界定義、パターン選定(単一集約内/2PC/Saga/ハイブリッド)、OCC競合率評価、バッチ処理設計、v3.17最適化適用計画を含みます。ワークフローStep 05(トランザクション設計)で使用します。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
ScalarDBのトランザクション設計を行います。トランザクション境界定義、パターン選定(単一集約内/2PC/Saga/ハイブリッド)、OCC競合率評価、バッチ処理設計、v3.17最適化適用計画を含みます。ワークフローStep 05(トランザクション設計)で使用します。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
RESTful API の設計を行います。エンドポイント定義、リクエスト/レスポンス仕様、エラーハンドリング、ScalarDBトランザクション例外のマッピングを含みます。
ScalarDBを前提としたデータベース設計を行います。スキーマ設計、トランザクション設計、マルチストレージ構成を対話形式で決定し、スキーマファイルと設計書を生成します。
DDDに基づいたドメインモデルを設計します。戦略的設計(境界コンテキスト、ユビキタス言語)と戦術的設計(エンティティ、値オブジェクト、集約、ドメインサービス、ドメインイベント)を定義し、ヘキサゴナルアーキテクチャとの統合を行います。ScalarDBのトランザクション境界や管理テーブル分類の考慮事項を含みます。中間状態はresearch/に記録されます。
設計ドキュメントに基づいて実装計画を生成します。ScalarDB特有のスキーマ定義、トランザクション実装、統合テストを含む実装可能なタスク指示書を作成し、フェーズ別の実装ロードマップを提供します。
Kubernetes、Kong API Gateway、ScalarDB Cluster v3.17を使用したインフラストラクチャ設計を行います。マニフェストファイルと設定ファイルを生成します。
ScalarDBの制約を考慮したデータモデル設計を行います。Partition Key・Clustering Key・Secondary Index の設計、ホットスポット評価、メタデータオーバーヘッド見積もり、バックエンドDB選定を含みます。ワークフローStep 04(データモデル設計)で使用します。
| name | scalardb-transaction |
| description | ScalarDBのトランザクション設計を行います。トランザクション境界定義、パターン選定(単一集約内/2PC/Saga/ハイブリッド)、OCC競合率評価、バッチ処理設計、v3.17最適化適用計画を含みます。ワークフローStep 05(トランザクション設計)で使用します。 |
ScalarDB のトランザクションパターンを選定・設計し、以下を生成する:
| 資料 | パス | 参照内容 |
|---|---|---|
| トランザクションモデル | research/07_transaction_model.md | 7つのトランザクションパターン |
| バッチ処理 | research/09_batch_processing.md | バッチ有効/無効ケース、チャンクサイズ |
| ScalarDB 3.17 | research/13_scalardb_317_deep_dive.md | 最適化機能の詳細 |
| ワークフロー05 | workflow/05_transaction_design.md | Step 05 手順 |
Step 04(データモデル)の結果を基に、各ビジネスプロセスのトランザクション境界を定義する。
トランザクション境界テンプレート:
| トランザクション名 | ビジネスプロセス | 関与集約 | 関与テーブル | 操作種別 |
|---|---|---|---|---|
| Read/Write/ReadWrite |
各トランザクションに対してパターンを選定:
| パターン | 適用条件 | ScalarDB API |
|---|---|---|
| 単一集約内 | 1サービス・1テーブル | DistributedTransaction |
| 単一サービス複数テーブル | 1サービス・複数テーブル | DistributedTransaction |
| 2PC(2サービス) | 2サービス間ACID | TwoPhaseCommitTransaction |
| 2PC(3サービス) | 3サービス間ACID(上限) | TwoPhaseCommitTransaction |
| Saga | 結果整合性で十分 | アプリケーション実装 |
| Saga + 部分2PC | 一部ACIDが必要 | ハイブリッド |
パターン選定マトリクス:
| トランザクション名 | 選定パターン | 根拠 | リスク |
|---|---|---|---|
楽観的並行性制御(OCC)の競合率を評価し、対策を検討する。
競合率評価テンプレート:
| トランザクション | 対象レコード | 同時実行数 | 推定競合率 | 許容範囲 | 対策 |
|---|---|---|---|---|---|
| < 5% |
競合率が高い場合の対策:
バッチ処理テンプレート:
| バッチ名 | 処理内容 | 対象テーブル | 予想レコード数 | チャンクサイズ | トランザクション範囲 |
|---|---|---|---|---|---|
| 100-1000推奨 | チャンク単位 |
ScalarDB バッチ処理の制約:
| 最適化機能 | 適用対象 | 効果 | 設定 |
|---|---|---|---|
| Piggyback Begin | 全トランザクション | ラウンドトリップ -1 | 有効化推奨 |
| Write Buffering | 書き込み多いTx | ネットワーク呼出削減 | 対象Txで有効化 |
| Batch Operations | バッチ処理 | スループット向上 | バッチ処理で使用 |
| Tx Metadata Decoupling | 小レコードテーブル | ストレージ効率化 | READレイテンシ影響を評価 |
エラーハンドリングテンプレート:
| 例外 | 原因 | 対応 | リトライ |
|---|---|---|---|
CrudConflictException | OCC競合 | リトライ | Yes(指数バックオフ) |
CommitConflictException | コミット時競合 | リトライ | Yes(指数バックオフ) |
UnknownTransactionStatusException | 状態不明 | 確認→リトライ or 補償 | 条件付き |
CommitException | コミット失敗 | abort→リトライ | Yes |
UnsatisfiedConditionException | 条件未達 | ビジネスロジック判断 | No |
リトライ設定テンプレート:
| パラメータ | 推奨値 | 説明 |
|---|---|---|
| 最大リトライ回数 | 3-5 | 過度なリトライは避ける |
| 初回待機時間 | 100ms | 指数バックオフの起点 |
| 最大待機時間 | 5000ms | 上限 |
| バックオフ係数 | 2.0 | 倍増 |
| ジッター | ±50ms | 同時リトライの分散 |
成果物を output/phase2/05_transaction_design.md に出力。
/plan-step 05
Step 04 のデータモデルに基づいてトランザクション設計を行ってください。
特に以下のプロセスの設計を重視:
- 注文確定(注文 + 在庫 + 決済の3サービス跨ぎ)
- ポイント付与(結果整合性で可)
- 月次バッチ集計