外部サービス連携とかメール送信を最後に持ってくるのは基本だけど、いざ書く時に忘れがち。実アクションの分類は分かりやすい
“非保護アクションは失敗してもどうでもいいやつです。保護アクションはロールバックすればもとに戻るもの。実アクションは、ロールバックしても戻りません。実アクションは最後に実行”
最近、LLM影響なのかOutboxパターンという記述をよく見る気がする。 Outboxにかかれた要求を実行する部分が、結局めんどくさいなぁと思っていたりする。
Unprotected Protected Real
実際にはメール送信をトランザクション内に書くのは向かないんじゃないかな。カード決済処理とかのほうが適切な気がする(決済も正確に書くと煩雑ではある
メール送信は確定したトランザクションに対するイベントなので、注文のトランザクション外でDBを参照したい気持ちがありますね。
トランザクション内の処理順は「非保護・保護・実」で分類し、実(メール送信)は最後に実行する
3分で読めるトランザクション設計のコツ
外部サービス連携とかメール送信を最後に持ってくるのは基本だけど、いざ書く時に忘れがち。実アクションの分類は分かりやすい
“非保護アクションは失敗してもどうでもいいやつです。保護アクションはロールバックすればもとに戻るもの。実アクションは、ロールバックしても戻りません。実アクションは最後に実行”
最近、LLM影響なのかOutboxパターンという記述をよく見る気がする。 Outboxにかかれた要求を実行する部分が、結局めんどくさいなぁと思っていたりする。
Unprotected Protected Real
実際にはメール送信をトランザクション内に書くのは向かないんじゃないかな。カード決済処理とかのほうが適切な気がする(決済も正確に書くと煩雑ではある
メール送信は確定したトランザクションに対するイベントなので、注文のトランザクション外でDBを参照したい気持ちがありますね。
トランザクション内の処理順は「非保護・保護・実」で分類し、実(メール送信)は最後に実行する