安易にトランザクションで括るとデッドロックやHistory list lengthで死ぬのわかる
単一DBトランザクションのリスクが顕在化するケースは少ないかもだけど、アーキテクチャが過剰になることを抑えながらバランスを取るための前提知識として、前半の設計論は意識しておきたいですね
何にでも補償トランザクションアーキ持ち込む最後の方の人になってしまった
DDD本のひっかかりが整理されてよい!ただ、単一トランザクションのコストとリスクがDBのパフォーマンス・ロック待ち程度なことと、プロセスマネージャがトランザクションスクリプト化しないかとか気になりました
しないですむならそれに越したことはないが今回の例が原理的に間違いのようには見えないかな
チーム全員が理解してかつ納期にコミットしてくれるならOK
AしてBしてCが失敗したのでBを戻してAを戻そうとしたら失敗した、みたいなこと考えたくないじゃないですか。
補償トランザクションは大変なのでリトライで解決できるような仕組みにできないか考えるのもよいとおもう
理屈はわかるんだけど過剰になり過ぎるケースの方が多いような。別に単一トランザクションで問題起きないようなものにもこのアーキテクチャ導入するのはコストが合わない。
様々なコストとのトレードオフでは。メンバーの理解度が均一である前提だと思うが、現実的にはそうではなく、その上で一つの認識違いから致命的な障害であったり不整合になる事態について本当に保証できるのかという
複数集約を跨ぐ処理を1つのDBトランザクションで括る前に読む記事
安易にトランザクションで括るとデッドロックやHistory list lengthで死ぬのわかる
単一DBトランザクションのリスクが顕在化するケースは少ないかもだけど、アーキテクチャが過剰になることを抑えながらバランスを取るための前提知識として、前半の設計論は意識しておきたいですね
何にでも補償トランザクションアーキ持ち込む最後の方の人になってしまった
DDD本のひっかかりが整理されてよい!ただ、単一トランザクションのコストとリスクがDBのパフォーマンス・ロック待ち程度なことと、プロセスマネージャがトランザクションスクリプト化しないかとか気になりました
しないですむならそれに越したことはないが今回の例が原理的に間違いのようには見えないかな
チーム全員が理解してかつ納期にコミットしてくれるならOK
AしてBしてCが失敗したのでBを戻してAを戻そうとしたら失敗した、みたいなこと考えたくないじゃないですか。
補償トランザクションは大変なのでリトライで解決できるような仕組みにできないか考えるのもよいとおもう
理屈はわかるんだけど過剰になり過ぎるケースの方が多いような。別に単一トランザクションで問題起きないようなものにもこのアーキテクチャ導入するのはコストが合わない。
様々なコストとのトレードオフでは。メンバーの理解度が均一である前提だと思うが、現実的にはそうではなく、その上で一つの認識違いから致命的な障害であったり不整合になる事態について本当に保証できるのかという