OSS探訪GitHubでログイン

Core NATS Pub/SubとJetStream永続messagingを同じGo clientで扱う

スコアの見方

OSS規模スコアはStars・Watchers・Forks・Contributorsを対数圧縮して重み付けした現在の規模指標(上限なし)です。発掘スコアは現在のOSS規模スコアから発掘時点のOSS規模スコアを引いた値、更新ペースは直近30日Commit数、成長モメンタムは直近の観測期間におけるOSS規模スコア差、OSS健全度は取得できた更新状況・Community Health・Releaseの0〜100評価です。

Stars
6,770
主要言語
Go
ライセンス
Apache-2.0
リポジトリ最終更新
2026/10/06
ページ内ナビ

概要

nats.goはNATS公式のGo clientです。Core NATSのpublish/subscribe、request/reply、queue subscriptionに加え、JetStreamのstream/consumer管理とpersistent publish/consume、TLS、NKeys/user credentials、reconnect等を提供します。

特徴と向いている用途

公式資料に基づく紹介・実機未検証 · 内容確認日:

主な特徴

Pub/Sub・Request/Reply・queue subscriptionでservice間messagingを組む

publish、async/sync subscribe、request/reply、channel subscription、drain等のCore NATS APIを使い、subject-basedなservice間通信を構築できます。

出典:[2]

JetStreamでpersistent streamとconsumerを管理する

JetStream APIからstream/consumer handleを取得し、persistent messageのpublish/consume、acknowledgement、consumer lifecycleをapplication側で制御できます。

出典:[2]

向いている用途

低latency Pub/Subとdurable messagingを使い分けるcloud-native backendに向く

microserviceのrequest/replyやevent distributionはCore NATS、replayやdurabilityが必要なworkloadはJetStreamとして同じclient ecosystemで構成したい場合に適します。

出典:[2]

導入前の確認

v1.54.0からGo 1.26。reconnect時のconsumer behaviorとpending limit修正を確認する

v1.54.0はminimum Go versionを1.26へ引き上げ、nats-server v2.15のstream/consumer info fieldへ対応します。releaseではJetStream iteratorがreconnect後に停止する問題、ordered consumerのmessage lossやsubscription復活、Core subscription SID race等が修正されているため、reconnect・drain・pending limit・ordered consumerを回帰testしてください。

出典:[3][4][2]

参考にした公式資料

  1. [1]nats-io/nats.go — GitHub repository(2026-10-06)
  2. [2]NATS Go Client v1.54.0 — README(2026-10-06)
  3. [3]NATS Go Client v1.54.0 — go.mod(2026-10-06)
  4. [4]NATS Go Client v1.54.0 release(2026-10-06)
  5. [5]NATS Go Client Apache-2.0 license(2026-10-06)
編集部からの補足

Core NATSの軽量Pub/SubとJetStreamの永続messagingを同じclientで扱えます。reconnect、drain、subscription pending limit、JetStream ack/consumer lifecycleはfailure時のmessage loss/duplicateへ関わるため、本番障害シナリオで確認してください。

3ステップで試す

  1. 1

    ソースを取得

    git clone --depth 1 https://github.com/nats-io/nats.go.git
  2. 2

    リポジトリへ移動

    cd nats.go
  3. 3

    公式手順を確認

    READMEのInstallation / Quick Start / Getting Startedにある公式コマンドを続けて実行してください。

    find . -maxdepth 1 -iname 'README*' -exec sed -n '1,220p' {} \; -quit
公式READMEで確認

成長

成長の推移 · 直近30日

6,770 Stars

推移データを蓄積中です。

開発アクティビティ

直近90日・週次

Commit(直近30日)
25
Open PR
46

開発アクティビティを蓄積中です。

Built with

カテゴリとタグ

GitHubデータ

GitHubのデータGitHubの詳細データを見る

GitHub Topics

  • go
  • golang
  • nats
  • microservices
  • microservices-architecture
  • pub-sub
  • cloud-native
  • cloud-native-architectures
  • cloud-native-microservices
Stars
6,770
Forks
839
Watchers
155
Open Issues
120
Contributors
156
所有者種別
Organization
主要言語
Go
ライセンス
Apache-2.0
リポジトリ最終更新
2026/10/06

このOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。

情報の誤りを報告

掲載内容に誤りや古い情報があればお知らせください。

このページを読んで、次に何をすればよいか分かりましたか?