30秒で判断
- 対応すべき人: NestJS 12.x でマイクロサービス(
@nestjs/microservices)を本番運用しており、Kafka・RabbitMQ・NATS・gRPC のいずれかのトランスポートを利用しているチーム。接続失敗後にKafkaクライアントが復帰しない、クライアント切断時にRMQ/NATSのリクエストがハングする、といった挙動に心当たりがある場合 - 対応不要な人: NestJS を利用していない、microservices を使っていない、または 11.x 以前で運用中で当面 12 系へ上げる予定がないチーム
- 確認コマンド:
npm ls @nestjs/coreまたはnode -e "console.log(require('@nestjs/core/package.json').version)"
この変更が意味すること
NestJS v12.0.4 は、v12.0.3 に続く バグ修正(patch)リリースです。新機能や破壊的変更は含まれず、主に microservices(Kafka / RabbitMQ / NATS / gRPC) の不具合が解消されています。
対象となる不具合は、分散構成やイベント駆動のアプリで顕在化しやすいものです。たとえば接続失敗後にKafkaクライアントが再接続しない、クライアントのクローズ時にRabbitMQ/NATSの保留中リクエストがハングする、gRPCパッケージのネームスペースが欠落しているとエラーになる、といった挙動が改善されています。patch リリースのため、12系を利用中であれば通常のアップデートとして安全に取り込めます。
主な変更点
microservices:接続失敗後のKafkaクライアント再接続(#17816)
Kafkaクライアントが接続に失敗した後、再接続(リトライ)できるよう修正しました(#17816)。初回接続に失敗したまま復帰しない状況を回避できます。
microservices:RabbitMQ切断時に保留リクエストを失敗させる(#17786)
クライアントがクローズした際に、保留中のRMQ(RabbitMQ)リクエストを失敗(fail)させるよう修正しました(#17786)。切断後にリクエストがハングし続ける状況の回避につながります。
microservices:NATS切断時に保留リクエストを失敗させる(#17802)
同様に、クライアントのクローズ時に保留中のNATSリクエストを失敗させるよう修正しました(#17802)。RabbitMQと合わせ、切断シナリオでの信頼性が向上します。
microservices:gRPCネームスペース欠落時の穏当な処理(#17803)
gRPCパッケージのネームスペースが欠落している場合に、エラーで落とさず穏当に処理するよう修正しました(#17803)。
microservices:処理フックのエンベロープをトランスポート間で共有(#17799)
処理フックのエンベロープを各トランスポート間で共有するよう修正しました(#17799)。トランスポートごとの挙動差を抑えます。
このほかにもKafka関連の修正(#17797 ほか)が含まれます。完全な一覧は公式リリースノートを参照してください。
EOL / サポート状況
NestJS は endoflife.date の追跡対象外のため、公式のサポートポリシーに従ってください。npm 上の dist-tag では以下が提供されています。
| タグ | バージョン | 位置づけ |
|---|---|---|
| latest | 12.0.4 | 最新安定版 |
| next | 12.0.0-alpha.7 | 次期プレリリース |
| legacy | 11.2.5 | 旧安定ライン |
| old | 10.4.19 | 旧バージョン |
開発者への影響
- Kafka 利用者は取り込みを推奨。接続失敗後に再接続できるようになり、初回接続の失敗から復帰しない事故を防げます。
- RabbitMQ / NATS 利用者も対象。クライアント切断時に保留中リクエストが適切に失敗するため、ハングによる詰まりを解消できます。
- gRPC 利用者への影響。ネームスペース欠落時にエラーで落ちなくなり、堅牢性が向上します。
- 破壊的変更なし。12系からのアップデートは通常のパッチ適用として計画でき、移行作業は不要です。
アップデート方法
# 現在のバージョンを確認
npm ls @nestjs/core
# 12系の最新パッチへ更新
npm i @nestjs/core@latest @nestjs/common@latest @nestjs/microservices@latest
# テスト実行で回帰を確認
npm test
データソース: GitHub Releases API, endoflife.date, npm Registry, PyPI AI解説は Claude API により自動生成されています。正確性については原文をご確認ください。
