2017-01-14 1 views
0

は、我々は持っているビジネスユースケースは、単一のビジネスユースケースがありますたデータベースのトランザクションが

読む - 書き込み - 書き込み - 読み - それは、読み取りのミックスであるなど本質的には

を書いて、通話を書き、しかし、すべての書き込みのどちらかが(失敗した書き込みまでロールバックのすべての成功した書き込みなど)すべてで動作しない、またはまったく必要があり

DBモジュールは、次のように私たちのシステムはある - RabbitMQの - データベース

現在、DBモジュールにはテーブルごとにCRUD DAOがあります。テーブル名、操作、変更を入力として受け取り、jsonを作成してRabbitmqに渡す単一のAPIを提供します。

このトランザクション処理およびロールバックのシナリオを処理するための設計パターン/既知の解決策はありますか。私がグーグルで見つけたとき、私は使用していないSQL世界のためのほとんどのソリューションを見つけました。

どのようなヘルプも素晴らしいでしょう。

ありがとうございます!

答えて

1

Martin Fowler says about Unit of work

は、ビジネス・トランザクションによって影響を受けるオブジェクトのリストを維持し、 は変更と 並行性の問題の解決のうち、書き込みを調整します。

そして:

作業のAユニットは、データベースに影響を与えることができ、ビジネス トランザクション中にあなたが行うすべてを追跡します。作業が完了したら、 の結果としてデータベースを変更するために必要な作業はすべて となります。

あなたのシナリオには完璧にマッチしたようです。

関連する問題