Difficulty: Beginner
Estimated Time: 10 minutes

Build Your First NATS Publisher and Subscriber

NATS is a simple, secure, performant message bus. You can easily build an "at-most-once" or "fire-and-forget" message network with minimal latency.

  1. You'll create a secure connection.
  2. You'll create the subscriber.
  3. You'll create the publisher.
  4. You'll make the subscriber more robust with error handling.

Don’t stop now! The next scenario will only take about 10 minutes to complete.

Simple NATS Publish and Subscribe

Step 1 of 3

Create a secure connection to a NATS server

Get the go-nats library.

go get github.com/nats-io/go-nats

Now, let's start coding.

In nats-client.go:

package main

import (


func main() {
    nc, err := nats.Connect("tls://demo.nats.io:4443")
    defer nc.Close()

    if err != nil {
        fmt.Printf("Connection Error: %#v", err)


Build it and run it.

go build ./...