func (p *natsProcessor) GatherSubscribe(topic string) (c chan string, stop func() error, err error) {
	c = make(chan string)
	var natsMsgs chan *nats.Msg
	if natsMsgs, stop, err = p.subscribe(topic); err != nil {
		return
	}
	go func() {
		for msg := range natsMsgs {
			c <- msg.Reply
		}
	}()
	return
}
GatherSubscribe performs a scatter-gather request against
a NATS cluster and pipes the NATS messages received into a
simpler channel for later consumption.
package main
import nats "github.com/nats-io/go-nats"
type natsProcessor struct {
	conn *nats.Conn
}
func newNatsProcessor(conn *nats.Conn) (p *natsProcessor) {
	return &natsProcessor{
		conn: conn,
	}
}