Documentation
¶
Index ¶
- func EmitChan[T any](k *EmitterIO, codec Encoder[T]) (chan<- T, <-chan T)
- func EmitEvent[E swarm.Event[M, T], M, T any](k *EmitterIO, codec Encoder[swarm.Event[M, T]]) (chan<- swarm.Event[M, T], <-chan swarm.Event[M, T])
- func RecvChan[T any](k *ListenerIO, codec Decoder[T]) (<-chan swarm.Msg[T], chan<- swarm.Msg[T])
- func RecvEvent[E swarm.Event[M, T], M, T any](k *ListenerIO, codec Decoder[swarm.Event[M, T]]) (<-chan swarm.Event[M, T], chan<- swarm.Event[M, T])
- type Bridge
- func (s *Bridge) Ack(ctx context.Context, digest swarm.Digest) 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 swarm.Digest, err error) error
- type Decoder
- type Emitter
- type EmitterIO
- type Encoder
- type Kernel
- type Listener
- type ListenerIO
- type Router
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func EmitEvent ¶ added in v0.24.0
func EmitEvent[E swarm.Event[M, T], M, T any](k *EmitterIO, codec Encoder[swarm.Event[M, T]]) (chan<- swarm.Event[M, T], <-chan swarm.Event[M, T])
Creates pair of channels within kernel to events to broker.
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 EmitterIO ¶ added in v0.24.0
type EmitterIO 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
Creates a new emitter kernel with the given emitter and configuration.
type Kernel ¶
type Kernel struct {
Emitter *EmitterIO
Listener *ListenerIO
}
func New ¶
func New(emitter *EmitterIO, listener *ListenerIO) *Kernel
type Listener ¶ added in v0.23.0
type Listener interface {
Ack(ctx context.Context, digest swarm.Digest) error
Err(ctx context.Context, digest swarm.Digest, 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 ListenerIO ¶ added in v0.24.0
type ListenerIO 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) *ListenerIO
func (*ListenerIO) Close ¶ added in v0.24.0
func (k *ListenerIO) Close()
Closes broker reader, gracefully shutdowns all I/O