![見出し画像](https://assets.st-note.com/production/uploads/images/143259869/rectangle_large_type_2_e9c7856d0ff6dcd8e714b410a9393092.png?width=800)
マイクロサービスアーキテクチャ(改
マイクロサービスアーキテクチャについて、こちらのBlogで紹介しておりますが、最近私がコンサルティングした案件で、もう少し良い表現が生まれたのでこちらでご紹介します。
基本的な考えは変わっていませんが、下記に示すように、ITとしてのサービスの分類の名前をちょっと変えました。
オーケストレーションサービス
(Integration Serviceから分離)
オーケストレーションサービスは、各サービスを連結させ、指定した順番で実行する(つまりオーケストレーションする)サービスのことで、アプリケーション本体のことを指します。今まではIntegration Service の一つとしていましたが、わかりにくいので分離させました。
![](https://assets.st-note.com/img/1716881614628-4YNasIih9k.png?width=800)
主にサーバ側のアプリケーションを想定しており、オーケストレーションサービス自体はUIサービスから呼ばれたり、バッチ起動で呼ばれたりします。呼ばれたオーケストレーションサービスから、データサービスやディシジョンサービス、プロセスサービスなどが呼ばれます。
つまり、下の図をご覧になるとおわかりのとおり、今までの「アプリケーション本体」と言っていたもののうち、各種サービスを呼び出す部分が、オーケストレーションサービスという位置づけになります。
![](https://assets.st-note.com/img/1716881669128-tjfNPL37nO.png?width=800)
横軸に各種サービス、縦軸に処理順序を記載している
オーケストレーションサービスはApache Camel等を利用することで、わかりやすく記述でき、メンテナンス性にも優れたアプリケーションになります。
メッセージサービス
いわゆる通知サービスです。前回の記事では「イベントサービス」としていました。メール・チャット・SNS等に、各種イベントを送信して通知を行うサービスのことを指しています。例えば、入金された、在庫が一つになった、エラーが発生した 等です。
本来、これらをアプリケーション(つまりオーケストレーションサービス)の中から直接発信すると、同期接続となり、接続先(例えばSMTPサーバ)等が混んでいるとアプリケーションの応答速度が落ちます。それを防ぐために、イベントサービスとしてQueueやApache Kafkaに代表されるようなStream Queue等を介した独立したサービスとして設計するのが望ましいです。
従って、拡張して考えていただくと、コンテナ環境におけるログの非同期処理にも使えます。
この記事が気に入ったらサポートをしてみませんか?