作業中、集中型SQLサーバにデータベースを持つ複数のアプリケーションがあります。あるアプリケーションが別のアプリケーションのデータを処理する必要がある場合は、そのアプリケーションを照会するか、データベースを介して更新します。私は、これがエンタープライズインテグレーションパターンブック(Hohpe & Woolf)に記載されている「共有データベース」パターンだと考えています。共有データベースパターンからのリファクタリング
これらのデータベース間の依存関係により、多くの頭痛が発生しています。これらのうち最大のものは、SQLサーバー上でパフォーマンスの問題に遭遇しており、データベース間の依存関係のためにスケールアウトできないということです。私たちがやるべきことは、EIPの本で説明されているように、シェアードデータベースのパターンからメッセージングシステムに近づくことだと思います。各アプリケーションは自分自身のデータすべてを管理し、そのデータにアクセスしたい他のアプリはサービス(メッセージングバス上)を取得します。
- ここでメッセージングパターンにリファクタリングを開始しますか?
- アプリケーションの1つをリファクタリングして、独自のアプリケーションデータベースを管理することから始めますか?
- 他のアプリケーションは現在、データベースを介して他のアプリケーションと統合されていますか?
- これは、データベースの依存関係を切り離す最善の方法ですか、別の場所から開始するのがいいですか?