Skip to content

Instantly share code, notes, and snippets.

@shijuvar
Created April 11, 2017 03:32
Show Gist options
  • Save shijuvar/0579ece53f56765805afc706970b42f4 to your computer and use it in GitHub Desktop.
Save shijuvar/0579ece53f56765805afc706970b42f4 to your computer and use it in GitHub Desktop.
Publisher Client of NATS Publish-Subscribe messaging
const (
aggregate = "Order"
event = "OrderCreated"
)
// publishOrderCreated publish an event via NATS server
func publishOrderCreated(order *pb.Order) {
// Connect to NATS server
natsConnection, _ := nats.Connect(nats.DefaultURL)
log.Println("Connected to " + nats.DefaultURL)
defer natsConnection.Close()
eventData, _ := json.Marshal(order)
event := pb.EventStore{
AggregateId: order.OrderId,
AggregateType: aggregate,
EventId: uuid.NewV4().String(),
EventType: event,
EventData: string(eventData),
}
subject := "Order.OrderCreated"
data, _ := proto.Marshal(&event)
// Publish message on subject
natsConnection.Publish(subject, data)
log.Println("Published message on subject " + subject)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment