go-micro.dev/v5@v5.12.0/events/natsjs/README.md (about) 1 # NATS JetStream 2 3 This plugin uses NATS with JetStream to send and receive events. 4 5 ## Create a stream 6 7 ```go 8 ev, err := natsjs.NewStream( 9 natsjs.Address("nats://10.0.1.46:4222"), 10 natsjs.MaxAge(24*160*time.Minute), 11 ) 12 ``` 13 14 ## Consume a stream 15 16 ```go 17 ee, err := events.Consume("test", 18 events.WithAutoAck(false, time.Second*30), 19 events.WithGroup("testgroup"), 20 ) 21 if err != nil { 22 panic(err) 23 } 24 go func() { 25 for { 26 msg := <-ee 27 // Process the message 28 logger.Info("Received message:", string(msg.Payload)) 29 err := msg.Ack() 30 if err != nil { 31 logger.Error("Error acknowledging message:", err) 32 } else { 33 logger.Info("Message acknowledged") 34 } 35 } 36 }() 37 38 ``` 39 40 ## Publish an Event to the stream 41 42 ```go 43 err = ev.Publish("test", []byte("hello world")) 44 if err != nil { 45 panic(err) 46 } 47 ``` 48