shad-go/pubsub/pubsub.go
2022-02-10 22:06:57 +00:00

26 lines
718 B
Go

//go:build !change
// +build !change
package pubsub
import "context"
// MsgHandler is a callback function that processes messages delivered to subscribers.
type MsgHandler func(msg interface{})
type Subscription interface {
// Unsubscribe will remove interest in the given subject.
Unsubscribe()
}
type PubSub interface {
// Subscribe creates an asynchronous queue subscriber on the given subject.
Subscribe(subj string, cb MsgHandler) (Subscription, error)
// Publish publishes the msg argument to the given subject.
Publish(subj string, msg interface{}) error
// Close will shutdown pub-sub system.
// May be blocked by data delivery until the context is canceled.
Close(ctx context.Context) error
}