アプリをマイクロサービスに分割する作業を開始したいと考えています。私の最初のタスクは、各アプリで繰り返される機能を削除することです。メールの送信、エクスポート、インデックスの検索など、すべてのアプリで同じまたは類似のコードが繰り返されるもの。
私は少し圧倒され、始めるのに苦労しています。マイクロサービスの目的は、仕事に適した言語を選択できるようにすることだと理解していますが、現在の目的では、.NET がすべてを構築する主要なフレームワークであると想定しています。
基本的に、まず最初に、すべてのアプリが必要なメールを送信するように指示して通信できるメールを送信するだけのマイクロサービスを作成したいと考えています。私が考えていた方法は、メール送信者にはメールを送信するロジックがありますが、各アプリは受信者、本文などを伝える必要があります.
私は次のようなことに苦労しています:
アプリがこのサービスと通信するには、どのプロトコルを使用する必要がありますか? HTTP 経由の REST? この場合、電子メール送信マイクロサービスは実質的に Web API 2 アプリになります (これは、私が REST API を構築する場合に個人的に使用するものです)。
REST を使用する場合、バックエンドから安らかな呼び出しを行う最善の方法は何ですか? 現在、システム内のほとんどのメールはバックエンド コードを介して送信されています。RestSharp という名前が飛び交っているのを見たことがありますが、これが一般的に最善の方法と考えられていますか?
将来の計画では、すべてのサービスを知っているある種のゲートウェイを持つことは有益だと思います。これにより、各アプリはこのゲートウェイについてのみ知る必要があり、ゲートウェイは必要なサービスと通信します。これは、アプリとマイクロ サービスの間の単なる別の REST API でしょうか?
質問ばかりで申し訳ありませんが、職場でステップアップするために、この種のもの (およびアーキテクチャ全般) を始めたところです。