Documentation ¶
Overview ¶
Package nats hold the implementation of the Publisher and PubSub interfaces for the NATS messaging system, the internal messaging broker of the Magistrala IoT platform. Due to the practical requirements implementation Publisher is created alongside PubSub. The reason for this is that Subscriber implementation of NATS brings the burden of additional struct fields which are not used by Publisher. Subscriber is not implemented separately because PubSub can be used where Subscriber is needed.
Index ¶
- Variables
- func JSStream(stream jetstream.JetStream) messaging.Option
- func NewPubSub(ctx context.Context, url string, logger *slog.Logger, opts ...messaging.Option) (messaging.PubSub, error)
- func NewPublisher(ctx context.Context, url string, opts ...messaging.Option) (messaging.Publisher, error)
- func Prefix(prefix string) messaging.Option
- func Stream(stream jetstream.Stream) messaging.Option
Constants ¶
This section is empty.
Variables ¶
var ( ErrNotSubscribed = errors.New("not subscribed") ErrEmptyTopic = errors.New("empty topic") ErrEmptyID = errors.New("empty id") )
Publisher and Subscriber errors.
var ErrInvalidType = errors.New("invalid type")
ErrInvalidType is returned when the provided value is not of the expected type.
Functions ¶
func NewPubSub ¶
func NewPubSub(ctx context.Context, url string, logger *slog.Logger, opts ...messaging.Option) (messaging.PubSub, error)
NewPubSub returns NATS message publisher/subscriber. Parameter queue specifies the queue for the Subscribe method. If queue is specified (is not an empty string), Subscribe method will execute NATS QueueSubscribe which is conceptually different from ordinary subscribe. For more information, please take a look here: https://docs.nats.io/developing-with-nats/receiving/queues. If the queue is empty, Subscribe will be used.
Types ¶
This section is empty.