Open4
Python クリーンアーキテクチャ トランザクション管理

クリーンアーキテクチャを採用しているPythonのプロジェクトでのトランザクション管理について考えたい。
リポジトリの実装にはSQAlchemyを使っている。
Usecaseはトランザクションについて関心を持ちたくない。
これは、Usecaseがコミットやロールバックを意識すると、アプリケーションロジックとインフラが密結合になるから。

Sagaパターンやuowパターンを使っていて、トランザクション的な意味合いをドメイン側でも制御したいときはどうするんだ

まぁ考えずに行こう

run_in_transaction(usecase_func, *args)のはボイラープレート感があるので
デコレータでやる?