コンテンツにスキップ

ラジオの話題05:DBにはある。でも仕事が始まらない

← ラジオの話題一覧 · 元の教材・詳しい解説

今日の話題:①二つの書き込みの隙間 → ②「後で送る」もDBへ残す → ③送った直後に停止したら。

気になったところから自由に。順番や時間は決めず、話しやすい話題だけ拾って構いません。

話を広げるメモ

  • 注文を保存した直後、queueへ送る前に停止。
  • 送信を先にしたら、問題はなくなる?

小ネタ:dual write

DBとqueueへの別々の書き込みには、片方だけ成功する隙間がある。順番を逆にするだけでは、両方が同時に成立する保証にはならない。

話の芯:停止する場所を、一行ずつずらして考える。

話を広げるメモ

  • 注文と送信予定を、同じtransactionで保存する。
  • relayが止まっても、再開の手がかりは残る?

小ネタ:transactional outbox

業務データと配送用の記録を同じDB transactionに入れ、relayが後から送る。DB内の二つの保存を揃えられるが、queueへの送信そのものが同じtransactionになるわけではない。

話の芯:仕事の予定を、消えない場所に残す。

話を広げるメモ

  • queueへ送信成功。でも送信済みの更新はまだ。
  • 再開後、もう一度送ってよい?

小ネタ:未送信記録の意味

outboxに未送信と残っていても、相手に未到着とは限らない。重複配送を見込み、consumer側で業務IDに基づく冪等処理を考える。

話の芯:送信漏れを減らす仕組みにも、重複への備えがいる。

「この話を、次に調査や設計をするときどう思い出したいか?」

既存の学習振り返り教材から話題を選び、AIが小ネタとして再構成しました。説明・設計例と、本人の回答・実測の記録は別です。数値例は記載した仮定に基づくもので、本人の本番実績ではありません。

定義の詳細・前提・一次資料・対象版・確認日は元の教材を参照してください。今回の作成では新しい実験・学習評価は行っていません。