microservices(マイクロサービス)は、アプリケーションを独立してデプロイ可能な小さなサービスに分割し、それぞれが特定のドメインを所有してネットワーク越しに通信するアーキテクチャです。Node の軽量で起動が速い特性はこれによく適していますが、このアーキテクチャは計画して対処すべき分散システムの複雑さをもたらします。
モノリス vs microservices
text
モノリス: 単一のコードベース/デプロイ — 構築は単純だが、チームのスケールは難しい
microservices: 多数の小さなサービス — 独立したデプロイ/スケールが可能だが、分散の複雑さがある
microservices はプロセス内の単純さを運用上の柔軟性と引き換えにします。本当に独立したスケーリング/デプロイが必要な場合や、複数のチームがいる場合にのみ価値があります。
サービス間の通信
text
同期: REST / gRPC — 直接のリクエスト/レスポンス(単純だが密結合 + 連鎖的な障害)
非同期: メッセージキュー(RabbitMQ, Kafka)— イベント、疎結合、回復力がある
js
queue.(, { : });
