Documentation
¶
Overview ¶
Package interfaces provides the interfaces for the eventer package.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AggregatorMiddleware ¶
type AggregatorMiddleware interface {
AggregateMiddleware(h message.HandlerFunc) message.HandlerFunc
}
AggregatorMiddleware is an interface that allows the eventer to add middleware to the router
type Consumer ¶
type Consumer interface {
Register(Registrar)
}
Consumer is an interface implemented by components which wish to consume events. Once a component has implemented the consumer interface, it can be registered with an event router using the HandleAll interface.
type Handler ¶
type Handler = message.NoPublishHandlerFunc
Handler is an alias for the watermill handler type, which is both wordy and may be detail we don't want to expose.
type Interface ¶
Interface is a combination of the Publisher, Registrar, and Service interfaces. This is handy when spawning the eventer in a single function for easy setup.
type Publisher ¶
type Publisher interface {
// Publish implements message.Publisher
Publish(topic string, messages ...*message.Message) error
}
Publisher is an interface implemented by components which wish to publish events.
type Registrar ¶
type Registrar interface {
// Register requests that the message router calls handler for each message on topic.
// It is valid to call Register multiple times with the same topic and different handler
// functions, or to call Register multiple times with different topics and the same
// handler function. It's allowed to call Register with both argument the same, but
// then events will be delivered twice to the handler, which is probably not what you want.
Register(topic string, handler Handler, mdw ...message.HandlerMiddleware)
}
Registrar provides an interface which allows an event router to expose itself to event consumers.
type Service ¶
type Service interface {
// ConsumeEvents allows registration of multiple consumers easily
ConsumeEvents(consumers ...Consumer)
// Close closes the router
Close() error
// Run runs the router, blocks until the router is closed
Run(ctx context.Context) error
// Running returns a channel which allows you to wait until the
// event router has started.
Running() chan struct{}
}
Service is an interface that allows the eventer to orchestrate the consumption and publication of events, as well as start and stop the event router.