Documentation
¶
Index ¶
- func EmitChan[T any](k *EmitterCore, cat string, codec Encoder[T]) (chan<- T, <-chan T)
- func RecvChan[T any](k *ListenerCore, cat string, codec Decoder[T]) (<-chan swarm.Msg[T], chan<- swarm.Msg[T])
- type Bridge
- func (s *Bridge) Ack(ctx context.Context, digest string) error
- func (s *Bridge) Ask(ctx context.Context) ([]swarm.Bag, error)
- func (s *Bridge) Close() error
- func (s *Bridge) Dispatch(ctx context.Context, seq []swarm.Bag) error
- func (s *Bridge) Err(ctx context.Context, digest string, err error) error
- type Decoder
- type Emitter
- type EmitterCore
- type Encoder
- type Kernel
- type Listener
- type ListenerCore
- type Router
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Bridge ¶ added in v0.20.0
type Bridge struct {
// contains filtered or unexported fields
}
Bridge Lambda's main function to Listener interface Bridge is single threaded and should be used in the context of Lambda handler only.
Bridge implements Ask interface for the Lambda handler to receive messages. Dispatch and Ask & Ack are corner stones for this adapter. Dispatch blocks until all messages are Asked and Acked by the kernel.
func (*Bridge) Ack ¶ added in v0.20.0
Acknowledge processed message, allowing lambda handler progress
func (*Bridge) Ask ¶ added in v0.20.0
Ask converts input of Lambda handler to the context of the kernel
type EmitterCore ¶ added in v0.23.0
type EmitterCore struct {
sync.WaitGroup
// Kernel configuration
Config swarm.Config
// Emitter is the writer port on message broker
Emitter Emitter
// contains filtered or unexported fields
}
The egress part of the kernel is used to enqueue messages into message broker.
func NewEmitter ¶ added in v0.23.0
func NewEmitter(emitter Emitter, config swarm.Config) *EmitterCore
Creates a new emitter kernel with the given emitter and configuration.
type Kernel ¶
type Kernel struct {
Emitter *EmitterCore
Listener *ListenerCore
}
func New ¶
func New(emitter *EmitterCore, listener *ListenerCore) *Kernel
type Listener ¶ added in v0.23.0
type Listener interface {
Ack(ctx context.Context, digest string) error
Err(ctx context.Context, digest string, err error) error
Ask(ctx context.Context) ([]swarm.Bag, error)
Close() error
}
Listener defines on-the-wire protocol for swarm.Bag, covering the ingress use-cases.
type ListenerCore ¶ added in v0.23.0
type ListenerCore struct {
sync.WaitGroup
sync.RWMutex
// Kernel configuration
Config swarm.Config
// Listener is the reader port on message broker
Listener Listener
// contains filtered or unexported fields
}
The ingress part of the kernel is used to dequeue messages from message broker.
func NewListener ¶ added in v0.23.0
func NewListener(listener Listener, config swarm.Config) *ListenerCore
func (*ListenerCore) Await ¶ added in v0.23.0
func (k *ListenerCore) Await()
Await reader to complete
func (*ListenerCore) Close ¶ added in v0.23.0
func (k *ListenerCore) Close()
Closes broker reader, gracefully shutdowns all I/O