ブックマーク / zenn.dev/cloud_ace (1)

  • どのレイヤー(層)でトランザクションを実装すべきか

    このように、層ごとに関心事の分離を行うことで、保守性の高い(変更容易性や再利用性等)アプリケーションを実現できます。 しかし、「トランザクション」においてはどうでしょうか。 トランザクションはビジネス領域においても、技術領域においても関心事がある内容です。 そういう曖昧なものは「ひとまず usecase 層に入れてしまえ」という方針になりがちです。 ですが、DB 固有の知識を usecase 層の関心事にしてしまっては、関心事の分離をするメリットが得られません。 そのため、関心事の分離を実現しつつトランザクション実装をする方法を模索してみました。 前提 1. クリーンアーキテクチャを採用している(オニオンアーキテクチャやレイヤードアーキテクチャも含む) そもそもビジネス知識と技術知識を分離していないアーキテクチャを採用している場合、メリットは得られません。 そのため、オニオンアーキテクチャ

    どのレイヤー(層)でトランザクションを実装すべきか
    nil0303
    nil0303 2024/03/03
    トランザクション境界をドメイン層に置くかインフラ層に置くか問題。業務的に複数のドメインオブジェクトの更新が必要なケースにモメる。整合性の厳密さを前提にしつつ派閥が別れていると認識している。
  • 1