Documentation
¶
Index ¶
- Constants
- type BlackholeClient
- type BrokerConfig
- type Client
- type Event
- type KafkaClient
- type PublishBuilder
- func (p *PublishBuilder) ClientID(clientID string) *PublishBuilder
- func (p *PublishBuilder) Context(ctx context.Context) *PublishBuilder
- func (p *PublishBuilder) ErrorCallback(errorCallback func(event *Event, err error)) *PublishBuilder
- func (p *PublishBuilder) EventName(eventName string) *PublishBuilder
- func (p *PublishBuilder) Namespace(namespace string) *PublishBuilder
- func (p *PublishBuilder) Payload(payload map[string]interface{}) *PublishBuilder
- func (p *PublishBuilder) SessionID(sessionID string) *PublishBuilder
- func (p *PublishBuilder) Topic(topics ...string) *PublishBuilder
- func (p *PublishBuilder) TraceID(traceID string) *PublishBuilder
- func (p *PublishBuilder) UserID(userID string) *PublishBuilder
- func (p *PublishBuilder) Version(version int) *PublishBuilder
- type StdoutClient
- type SubscribeBuilder
- func (s *SubscribeBuilder) Callback(callback func(event *Event, err error)) *SubscribeBuilder
- func (s *SubscribeBuilder) Context(ctx context.Context) *SubscribeBuilder
- func (s *SubscribeBuilder) EventName(eventName string) *SubscribeBuilder
- func (s *SubscribeBuilder) GroupID(groupID string) *SubscribeBuilder
- func (s *SubscribeBuilder) Topic(topic string) *SubscribeBuilder
Constants ¶
const ( OffLevel = "off" InfoLevel = "info" DebugLevel = "debug" WarnLevel = "warn" ErrorLevel = "error" )
log level
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type BlackholeClient ¶
type BlackholeClient struct{}
BlackholeClient satisfies the publisher for mocking
func (*BlackholeClient) Publish ¶ added in v1.0.0
func (client *BlackholeClient) Publish(publishBuilder *PublishBuilder) error
func (*BlackholeClient) Register ¶ added in v1.0.0
func (client *BlackholeClient) Register(subscribeBuilder *SubscribeBuilder) error
type BrokerConfig ¶ added in v1.0.1
type BrokerConfig struct {
LogMode string
StrictValidation bool
DialTimeout time.Duration
ReadTimeout time.Duration
WriteTimeout time.Duration
}
BrokerConfig is custom configuration for message broker
type Client ¶ added in v1.0.0
type Client interface {
Publish(publishBuilder *PublishBuilder) error
Register(subscribeBuilder *SubscribeBuilder) error
}
Client is an interface for event stream functionality
type Event ¶
type Event struct {
ID string `json:"id"`
EventName string `json:"name"`
Namespace string `json:"namespace"`
ClientID string `json:"clientId"`
TraceID string `json:"traceId"`
UserID string `json:"userId"`
SessionID string `json:"sessionId"`
Timestamp string `json:"timestamp"`
Version int `json:"version"`
Payload map[string]interface{} `json:"payload"`
}
Event defines the structure of event
type KafkaClient ¶
type KafkaClient struct {
// contains filtered or unexported fields
}
KafkaClient wraps client's functionality for Kafka
func (*KafkaClient) Publish ¶ added in v1.0.0
func (client *KafkaClient) Publish(publishBuilder *PublishBuilder) error
Publish send event to single or multiple topic with exponential backoff retry
func (*KafkaClient) Register ¶ added in v1.0.0
func (client *KafkaClient) Register(subscribeBuilder *SubscribeBuilder) error
Register register callback function and then subscribe topic
type PublishBuilder ¶ added in v1.0.0
type PublishBuilder struct {
// contains filtered or unexported fields
}
PublishBuilder defines the structure of message which is sent through message broker
func NewPublish ¶ added in v1.0.0
func NewPublish() *PublishBuilder
NewPublish create new PublishBuilder instance
func (*PublishBuilder) ClientID ¶ added in v1.0.0
func (p *PublishBuilder) ClientID(clientID string) *PublishBuilder
ClientID set clientID of publisher event
func (*PublishBuilder) Context ¶ added in v1.0.0
func (p *PublishBuilder) Context(ctx context.Context) *PublishBuilder
Context define client context when publish event. default: context.Background()
func (*PublishBuilder) ErrorCallback ¶ added in v1.0.2
func (p *PublishBuilder) ErrorCallback(errorCallback func(event *Event, err error)) *PublishBuilder
ErrorCallback function to handle the event when failed to publish
func (*PublishBuilder) EventName ¶ added in v1.0.0
func (p *PublishBuilder) EventName(eventName string) *PublishBuilder
EventName set name of published event
func (*PublishBuilder) Namespace ¶ added in v1.0.0
func (p *PublishBuilder) Namespace(namespace string) *PublishBuilder
Namespace set namespace of published event
func (*PublishBuilder) Payload ¶ added in v1.0.0
func (p *PublishBuilder) Payload(payload map[string]interface{}) *PublishBuilder
Payload is a event payload that will be published
func (*PublishBuilder) SessionID ¶ added in v1.0.1
func (p *PublishBuilder) SessionID(sessionID string) *PublishBuilder
SessionID set sessionID of publisher event
func (*PublishBuilder) Topic ¶ added in v1.0.0
func (p *PublishBuilder) Topic(topics ...string) *PublishBuilder
Topic set channel / topic name
func (*PublishBuilder) TraceID ¶ added in v1.0.0
func (p *PublishBuilder) TraceID(traceID string) *PublishBuilder
TraceID set traceID of publisher event
func (*PublishBuilder) UserID ¶ added in v1.0.0
func (p *PublishBuilder) UserID(userID string) *PublishBuilder
UserID set userID of publisher event
func (*PublishBuilder) Version ¶ added in v1.0.0
func (p *PublishBuilder) Version(version int) *PublishBuilder
Version set event schema version
type StdoutClient ¶
type StdoutClient struct {
// contains filtered or unexported fields
}
StdoutClient satisfies the publisher for mocking
func (*StdoutClient) Publish ¶ added in v1.0.0
func (client *StdoutClient) Publish(publishBuilder *PublishBuilder) error
Publish print event to console
func (*StdoutClient) Register ¶ added in v1.0.0
func (client *StdoutClient) Register(subscribeBuilder *SubscribeBuilder) error
Register print event to console
type SubscribeBuilder ¶ added in v1.0.0
type SubscribeBuilder struct {
// contains filtered or unexported fields
}
SubscribeBuilder defines the structure of message which is sent through message broker
func NewSubscribe ¶ added in v1.0.0
func NewSubscribe() *SubscribeBuilder
NewSubscribe create new SubscribeBuilder instance
func (*SubscribeBuilder) Callback ¶ added in v1.0.0
func (s *SubscribeBuilder) Callback(callback func(event *Event, err error)) *SubscribeBuilder
Callback to do when the event received
func (*SubscribeBuilder) Context ¶ added in v1.0.0
func (s *SubscribeBuilder) Context(ctx context.Context) *SubscribeBuilder
Context define client context when subscribe event. default: context.Background()
func (*SubscribeBuilder) EventName ¶ added in v1.0.0
func (s *SubscribeBuilder) EventName(eventName string) *SubscribeBuilder
EventName set event name that will be subscribe
func (*SubscribeBuilder) GroupID ¶ added in v1.0.1
func (s *SubscribeBuilder) GroupID(groupID string) *SubscribeBuilder
GroupID set subscriber groupID or queue group name
func (*SubscribeBuilder) Topic ¶ added in v1.0.0
func (s *SubscribeBuilder) Topic(topic string) *SubscribeBuilder
Topic set topic that will be subscribe