私は新しいアプリケーションを構築しており、マイクロサービスアーキテクチャについて読んでいました。アーキテクチャ自体は、開発、展開、ライフサイクル管理の観点から非常に理にかなっています。しかし、出てきた問題の1つは、マスターデータの処理方法に関するものでした。
たとえば、2つのアプリがあります。たとえば、SalesアプリとTicketingアプリです。これらのアプリは両方とも独自のマイクロサービスとして構築されていると仮定します。ただし、これらのアプリの両方をデプロイする場合(セールスがMongoDBを使用し、チケットがMariaDBを使用すると言う場合)、別々にデプロイすると、アカウント、製品などの同じマスターデータインスタンスにアクセスする必要があります。これは、特定のマスターデータエンティティの所有者アプリ(例:アカウントの場合は販売アプリ)と関係者(例:発券アプリにはアカウントに関する情報が必要)があることを意味します。
これを実現する方法は複数あります。-マスターから関係者へのデータ複製-関係者からマスターへの同期読み取り(同期依存関係はマイクロサービスアーキテクチャパラダイムでは推奨されません)-独自の中央リポジトリ
また、アカウント内でも、販売と発券の両方に共通のコア部分(アカウント名、住所など)が存在する場合があります。ただし、アカウントの一部の側面は販売にのみ関連し、他の側面はチケットにのみ関連する場合があります。
上記のオプションのいずれかに関する考え/ベストプラクティス/意見はありますか?