Documentation ¶
Overview ¶
Package broker - Implements types used for routing inputs to outputs in non-trivial arrangements, such as fan-out or fan-in models.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type FanIn ¶
type FanIn struct {
// contains filtered or unexported fields
}
FanIn - A broker that implements types.Producer, takes an array of inputs and routes them through a single message channel.
func (*FanIn) CloseAsync ¶
func (i *FanIn) CloseAsync()
CloseAsync - Shuts down the FanIn broker and stops processing requests.
func (*FanIn) MessageChan ¶
MessageChan - Returns the channel used for consuming messages from this broker.
func (*FanIn) StartListening ¶
StartListening - Assigns a new responses channel for the broker to read.
type FanOut ¶
type FanOut struct {
// contains filtered or unexported fields
}
FanOut - A broker that implements types.Consumer and broadcasts each message out to an array of outputs.
func NewFanOut ¶
func NewFanOut( conf FanOutConfig, outputs []types.Consumer, logger log.Modular, stats metrics.Type, ) (*FanOut, error)
NewFanOut - Create a new FanOut type by providing outputs.
func (*FanOut) CloseAsync ¶
func (o *FanOut) CloseAsync()
CloseAsync - Shuts down the FanOut broker and stops processing requests.
func (*FanOut) ResponseChan ¶
ResponseChan - Returns the response channel.
func (*FanOut) StartReceiving ¶
StartReceiving - Assigns a new messages channel for the broker to read.
type FanOutConfig ¶
type FanOutConfig struct { }
FanOutConfig - Config values for the fan out type.
func NewFanOutConfig ¶
func NewFanOutConfig() FanOutConfig
NewFanOutConfig - Creates a FanOutConfig fully populated with default values.
type RoundRobin ¶
type RoundRobin struct {
// contains filtered or unexported fields
}
RoundRobin - A broker that implements types.Consumer and sends each message out to a single consumer chosen from an array in round-robin fashion. Consumers that apply backpressure will block all consumers.
func NewRoundRobin ¶
NewRoundRobin - Create a new RoundRobin type by providing consumers.
func (*RoundRobin) CloseAsync ¶
func (o *RoundRobin) CloseAsync()
CloseAsync - Shuts down the RoundRobin broker and stops processing requests.
func (*RoundRobin) ResponseChan ¶
func (o *RoundRobin) ResponseChan() <-chan types.Response
ResponseChan - Returns the response channel.
func (*RoundRobin) StartReceiving ¶
func (o *RoundRobin) StartReceiving(msgs <-chan types.Message) error
StartReceiving - Assigns a new messages channel for the broker to read.
func (*RoundRobin) WaitForClose ¶
func (o *RoundRobin) WaitForClose(timeout time.Duration) error
WaitForClose - Blocks until the RoundRobin broker has closed down.