30秒で判断
- 対応すべき人: NestJS 12.x でマイクロサービス(
@nestjs/microservices)を本番運用しており、Kafka や TCP トランスポートを利用しているチーム。クライアント切断時のリクエストのハングや、TCP 接続まわりのメモリ・ソケット残留に心当たりがある場合 - 対応不要な人: NestJS を利用していない、microservices を使っていない、または 11.x 以前で運用中で当面 12 系へ上げる予定がないチーム
- 確認コマンド:
npm ls @nestjs/coreまたはnode -e "console.log(require('@nestjs/core/package.json').version)"
この変更が意味すること
NestJS v12.0.3 は、v12.0.2 に続く バグ修正(patch)リリースです。新機能や破壊的変更は含まれず、主に microservices(Kafka / TCP トランスポート)と common の不具合が解消されています。
対象となる不具合はいずれも、分散構成やイベント駆動のアプリで顕在化しやすいものです。たとえば Kafka の処理終了フックが実行されない、クライアントのクローズ時に保留中のリクエストがハングする、TCP ピアが保持するメモリが上限管理されない、といった挙動が改善されています。patch リリースのため、12系を利用中であれば通常のアップデートとして安全に取り込めます。
主な変更点
microservices:Kafka の処理終了フックを常に実行(#17766)
Kafka の処理において、処理終了フックが常に実行されるよう修正しました(#17766)。フックが呼ばれないことによる後処理漏れを防ぎます。
microservices:クライアント切断時に保留リクエストを失敗させる(#17757)
クライアントがクローズした際に、保留中のリクエストを失敗(fail)させるよう修正しました(#17757)。リクエストがハングし続ける状況の回避につながります。
microservices:TCPピアのメモリ上限管理とソケット破棄(#17746 / #17745)
TCP ピアが保持するメモリを上限管理するよう修正(#17746)。あわせて、シャットダウン時に開いている TCP ソケットを破棄する修正も加わりました(#17745)。長時間稼働時のリソース残留を抑えます。
common:UUIDのバージョン・バリアント検証(#17738)
バージョンが指定されていない場合に、UUID のバージョンとバリアントを検証するよう修正しました(#17738)。バリデーションの厳密性が向上します。
このほかにも common・microservices 関連のバグ修正が含まれます。完全な一覧は公式リリースノートを参照してください。
EOL / サポート状況
NestJS は endoflife.date の追跡対象外のため、公式のサポートポリシーに従ってください。npm 上の dist-tag では以下が提供されています。
| タグ | バージョン | 位置づけ |
|---|---|---|
| latest | 12.0.3 | 最新安定版 |
| next | 12.0.0-alpha.7 | 次期プレリリース |
| legacy | 11.2.5 | 旧安定ライン |
| old | 10.4.19 | 旧バージョン |
開発者への影響
- Kafka 利用者は取り込みを推奨。処理終了フックが常に実行されるようになり、後処理の取りこぼしを防げます。
- TCP トランスポート利用者も対象。メモリ上限管理とシャットダウン時のソケット破棄により、長時間稼働時のリソース残留が抑えられます。
- クライアント切断時のハング解消。保留中リクエストが適切に失敗するため、切断シナリオの信頼性が上がります。
- 破壊的変更なし。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 により自動生成されています。正確性については原文をご確認ください。
