O’REILLY Learning「マイクロサービスアーキテクチャ 第2版」3〜5
https://learning.oreilly.com/library/view/maikurosabisuakitekutiya-di-2ban/9784814400010/
3章 モノリスの分割
マイクロサービスは、目標ではありません。マイクロサービスを持っているからといって、「勝利」したわけではない。
既存のモノリシックシステムを分割すべきだと判断した場合、モノリスを少しずつ崩し、少しずつ抽出することを、強く勧める。
Codescene
https://codescene.com/
静的解析ツール
マイクロサービスに分割する機能を判断する際には、抽出の容易さ、マイクロサービスに抽出する利点という、2つの要因のバランスを取る。
コードファースト
データファースト
便利な分解パターン
・ストラングラーフィグパターン
・並列実行
・機能トグル
4章 マイクロサービスの通信スタイル
同期ブロッキング
リクエスト/レスポンス
非同期非ブロッキング
リクエスト/レスポンス
イベント駆動
共通データ
5章 マイクロサービスの通信の実装
リモートプロシージャコール(RPC)
gRPC
REST
GraphQL
メッセージブローカー
RabbitMQ
ActiveMQ
Kafka
Richardson Maturity Model
https://martinfowler.com/articles/richardsonMaturityModel.html
RESTのさまざまなスタイルを比較している
クライアント、サーバ間の結合を避けるのに役立つ別の原則
「アプリケーション状態エンジンとしてのハイパーメディア」(Hypermedia as the Engine of Application State)(HATEOAS)
GraphQL:https://graphql.org
BFF(Backend For Frontend)
AsyncAPI:https://www.asyncapi.com
イベント駆動型アーキテクチャを簡単に構築し、維持するためのオープンソースツールです。
すべて、非同期APIを定義するための業界標準であるAsyncAPI仕様によって提供されます。
CloudEvents:https://cloudevents.io
イベントデータを共通の方法で記述するための仕様書