cloudevents / sdk-go

Go SDK for CloudEvents
https://cloudevents.github.io/sdk-go/
Apache License 2.0
776 stars 216 forks source link

Support new JetStream API #1035

Open dan-j opened 1 month ago

dan-j commented 1 month ago

There's a new (well, 12 months old) SDK for interacting with JetStream, package github.com/nats-io/nats.go/jetstream. It makes things a bit easier for interacting with JetStream so we want to use it in https://github.com/knative-extensions/eventing-natss but there's a different implementation for the underlying message, jetstream.Msg instead of *nats.Msg.

It would be worth adding support to this SDK, but since our github.com/cloudevents/sdk-go/protocol/nats_jetstream/v2.Message implementation exports both the Message struct and the Msg field, it would technically be a breaking change:

https://github.com/cloudevents/sdk-go/blob/6408c0101c4ea93de70e28cd4624cb8c40f79027/protocol/nats_jetstream/v2/message.go#L29-L34

This new SDK also requires nats-server >= 2.9.0.

What are people's opinion on this? If interested, should we just add a new package supporting both and deprecate the old one in future? Any ideas on what this package should be?