通常、サービスは、データにアクセスする必要があるときに他のサービスを呼び出します。データの各部分は、このデータにアクセスして変更するための唯一のエントリポイントとなる特定のサービスに属している必要があります。一部のサービスはシンプルで、通常はドメインモデルに密接に対応します(ユーザーを処理するサービスなど)。他のサービスは高レベルで他のサービスのデータを使用します(例:写真のリストとそれらをアップロードしたユーザーに関する情報の表示) )。
ユースケースでは、外部から開始し、APIを介してユーザーに利用できるようにする操作(バックエンドサービスの場合)、またはWebアプリケーションの場合にGUIで利用できる操作を検討する必要があります。GUIパーツは多くの場合、独自のコントローラーを備えた通常のアプリケーションです:操作はRESTを介して呼び出される場合があります(AngularJSのように)が、これらのエンドポイントはGUIアプリケーションの使用のみを目的としており、常識的なマイクロサービスではありません。
写真をアップローダーに関する情報とともに表示するとします。ユーザーのIDを指定してユーザーに関する情報を返すユーザーサービスと、写真を一覧表示できる写真サービス(たとえば、いくつかの条件で検索する)を使用できます。写真のリストには、写真ごとにアップロードするユーザーのIDが含まれます。この方法では、これら2つのサービスは結合されません。写真サービスはユーザーIDのみを認識し、ユーザーデータ自体は認識しません。これらの2つのサービスに加えて、「アップローダーに関する情報を写真に一覧表示する」などの操作で3番目のサービスを作成し、他の2つのサービスを呼び出して、返されるデータを結合できます。または、この操作はサービスの代わりにWebアプリケーションによって実行できます。