Documentation ¶
Index ¶
Constants ¶
const (
DefaultName = "mkit.broker.default"
)
Variables ¶
This section is empty.
Functions ¶
func AddSubscriber ¶
func AddSubscriber(subscription string, handler Handler, opts ...SubscribeOption) error
Types ¶
type Broker ¶
type Broker interface { NewPublisher(topic string, opts ...PublishOption) (pub Publisher, err error) AddSubscriber(subscription string, hdlr Handler, opts ...SubscribeOption) (err error) Start() error }
Broker is an interface used for asynchronous messaging.
var DefaultBroker Broker
type Handler ¶
Handler is used to process messages via a subscription of a topic. The handler is passed a publication interface which contains the message and optional Ack method to acknowledge receipt of the message.
type Option ¶
type Option func(*Options)
func ClientOption ¶
func ClientOption(c ...option.ClientOption) Option
ClientOption is a broker Option which allows google pubsub client options to be set for the client
func ErrorHandler ¶
ErrorHandler will catch all broker errors that cant be handled in normal way, for example Codec errors
type PublishOption ¶
type PublishOption func(*PublishOptions)
func PublishAsync ¶
func PublishAsync(b bool) PublishOption
func WithPublishSettings ¶
func WithPublishSettings(publishSettings pubsub.PublishSettings) PublishOption
type PublishOptions ¶
type PublishOptions struct { // pubsub PublishSettings PublishSettings pubsub.PublishSettings // publishes msg to the topic asynchronously if set to true. // Default false. i.e., publishes synchronously(blocking) Async bool }
TODO support more pubsub.PublishSettings settings
type Publisher ¶
func NewPublisher ¶
func NewPublisher(topic string, opts ...PublishOption) (Publisher, error)
type RecoveryHandler ¶
RecoveryHandler is a function that is called when the recovery middleware recovers from a panic. The func takes the receive context, message and the return value from recover which reports whether the goroutine is panicking. Example usages of HandlerFunc could be to log panics or nack/ack messages which cause panics.
type SubscribeOption ¶
type SubscribeOption func(*SubscribeOptions)
func WithReceiveSettings ¶
func WithReceiveSettings(receiveSettings pubsub.ReceiveSettings) SubscribeOption
func WithRecoveryHandler ¶
func WithRecoveryHandler(r RecoveryHandler) SubscribeOption
WithRecoveryHandler sets the function for recovering from a panic.
type SubscribeOptions ¶
type SubscribeOptions struct { // pubsub ReceiveSettings ReceiveSettings pubsub.ReceiveSettings RecoveryHandler RecoveryHandler }
SubscribeOptions TODO support more pubsub.ReceiveSettings settings