mcpField
L
laravel-transactions-and-consistency

laravel-transactions-and-consistency

github.com/noartem開発1374 回インストール2 週間前に更新
リポジトリ

laravel-transactions-and-consistency について

Laravel で複数手順のデータベース書き込みの整合性を保つスキルです。トランザクション、コミット後のイベントやジョブ、冪等な再試行、行ロックを扱います。

主な機能

  1. 01関連する書き込みをトランザクションで囲む
  2. 02コミット後にイベントやジョブを実行
  3. 03ジョブを安全に再試行可能にする
  4. 04行ロックで書き込みを調整
  5. 05トランザクション前に不変条件を検証

活用シーン

  1. 01注文と商品を原子的に更新
  2. 02コミット後に請求書ジョブを実行
  3. 03ジョブ再試行時の副作用の重複を防止

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/noartem/skills --skill laravel-transactions-and-consistency

インストール後、Claude Code で/laravel-transactions-and-consistencyを入力して読み込まれたか確認します。

詳細

トランザクションと一貫性

複数ステップの変更をアトミックにし、再試行を安全に行えるようにします。

コマンド

DB::transaction(function () use ($order, $payload) {
    $order->update([...]);
    $order->items()->createMany($payload['items']);
    OrderUpdated::dispatch($order);        // or flag for after-commit
});

// Listener queued after commit
class SendInvoice implements ShouldQueue {
    public $afterCommit = true;
}

パターン

  • 書き込み処理と関連する副作用をまとめるには、DB::transaction を使用します
  • イベントやジョブには、$afterCommit または dispatchAfterCommit() を優先します
  • ジョブを冪等にします(既存の状態を確認し、一意制約を使用します)
  • 必要に応じて、行レベルの調整に lockForUpdate() を使用します
  • トランザクションを開始する前に、境界で不変条件を検証します

コメント