Documentation
¶
Overview ¶
Package event provides an event-driven architecture for HTTP applications.
This package implements a lightweight event system for observability, monitoring, and inter-service communication. It supports both typed event emission and global event handling with string-based event types for flexibility.
Index ¶
- Constants
- type DefaultSeverityEmitter
- func (e *DefaultSeverityEmitter) EmitDebug(eventType EventType, message string)
- func (e *DefaultSeverityEmitter) EmitError(eventType EventType, message string)
- func (e *DefaultSeverityEmitter) EmitFatal(eventType EventType, message string)
- func (e *DefaultSeverityEmitter) EmitInfo(eventType EventType, message string)
- func (e *DefaultSeverityEmitter) EmitTrace(eventType EventType, message string)
- func (e *DefaultSeverityEmitter) EmitWarn(eventType EventType, message string)
- type Event
- type EventCallback
- type EventEmitter
- type EventType
- type NoopEventEmitter
- func (n *NoopEventEmitter) Emit(event *Event)
- func (n *NoopEventEmitter) RegisterGlobalListener(callback EventCallback) EventEmitter
- func (n *NoopEventEmitter) RegisterListener(eventType EventType, callback EventCallback) EventEmitter
- func (n *NoopEventEmitter) RemoveGlobalListener(id string)
- func (n *NoopEventEmitter) RemoveListener(eventType EventType, id string)
- type SeverityEmitter
- type SeverityEvent
- type SimpleSeverityEmitter
- func (e *SimpleSeverityEmitter) EmitDebug(eventType EventType, message string)
- func (e *SimpleSeverityEmitter) EmitError(eventType EventType, message string)
- func (e *SimpleSeverityEmitter) EmitFatal(eventType EventType, message string)
- func (e *SimpleSeverityEmitter) EmitInfo(eventType EventType, message string)
- func (e *SimpleSeverityEmitter) EmitTrace(eventType EventType, message string)
- func (e *SimpleSeverityEmitter) EmitWarn(eventType EventType, message string)
- func (e *SimpleSeverityEmitter) EmitWithSeverity(eventType EventType, message string, severity string)
Constants ¶
const ( SeverityDebug = "debug" SeverityInfo = "info" SeverityWarn = "warn" SeverityError = "error" SeverityFatal = "fatal" SeverityTrace = "trace" )
Severity levels for events
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type DefaultSeverityEmitter ¶ added in v1.0.0
type DefaultSeverityEmitter struct {
EventEmitter
}
DefaultSeverityEmitter implements SeverityEmitter
func (*DefaultSeverityEmitter) EmitDebug ¶ added in v1.0.0
func (e *DefaultSeverityEmitter) EmitDebug(eventType EventType, message string)
EmitDebug emits a debug level event
func (*DefaultSeverityEmitter) EmitError ¶ added in v1.0.0
func (e *DefaultSeverityEmitter) EmitError(eventType EventType, message string)
EmitError emits an error level event
func (*DefaultSeverityEmitter) EmitFatal ¶ added in v1.0.0
func (e *DefaultSeverityEmitter) EmitFatal(eventType EventType, message string)
EmitFatal emits a fatal level event
func (*DefaultSeverityEmitter) EmitInfo ¶ added in v1.0.0
func (e *DefaultSeverityEmitter) EmitInfo(eventType EventType, message string)
EmitInfo emits an info level event
func (*DefaultSeverityEmitter) EmitTrace ¶ added in v1.0.0
func (e *DefaultSeverityEmitter) EmitTrace(eventType EventType, message string)
EmitTrace emits a trace level event
func (*DefaultSeverityEmitter) EmitWarn ¶ added in v1.0.0
func (e *DefaultSeverityEmitter) EmitWarn(eventType EventType, message string)
EmitWarn emits a warning level event
type Event ¶
Event represents an emitted event.
type EventCallback ¶
type EventCallback func(event *Event)
EventCallback is a function that handles an event.
type EventEmitter ¶
type EventEmitter interface {
RegisterListener(eventType EventType, callback EventCallback) EventEmitter
RemoveListener(eventType EventType, id string)
Emit(event *Event)
RegisterGlobalListener(callback EventCallback) EventEmitter
RemoveGlobalListener(id string)
}
EventEmitter is responsible for emitting events.
func NewEmitterLogger ¶
func NewEmitterLogger(eventEmitter EventEmitter, loggerFactoryFn func(params ...any) any) EventEmitter
NewEmitterLogger creates a new event emitter. This is a placeholder function that returns a noop emitter. In a real implementation, this would create a proper event emitter.
func NewEventEmitter ¶
func NewEventEmitter() EventEmitter
NewEventEmitter creates a new event emitter. This is a placeholder function that returns a noop emitter. In a real implementation, this would create a proper event emitter.
type NoopEventEmitter ¶ added in v1.0.0
type NoopEventEmitter struct{}
NoopEventEmitter is a no-op implementation of EventEmitter.
func NewNoopEventEmitter ¶ added in v1.0.0
func NewNoopEventEmitter() *NoopEventEmitter
NewNoopEventEmitter creates a new noop event emitter.
func (*NoopEventEmitter) Emit ¶ added in v1.0.0
func (n *NoopEventEmitter) Emit(event *Event)
Emit does nothing.
func (*NoopEventEmitter) RegisterGlobalListener ¶ added in v1.0.0
func (n *NoopEventEmitter) RegisterGlobalListener( callback EventCallback) EventEmitter
RegisterGlobalListener does nothing.
func (*NoopEventEmitter) RegisterListener ¶ added in v1.0.0
func (n *NoopEventEmitter) RegisterListener(eventType EventType, callback EventCallback) EventEmitter
RegisterListener does nothing.
func (*NoopEventEmitter) RemoveGlobalListener ¶ added in v1.0.0
func (n *NoopEventEmitter) RemoveGlobalListener(id string)
RemoveGlobalListener does nothing.
func (*NoopEventEmitter) RemoveListener ¶ added in v1.0.0
func (n *NoopEventEmitter) RemoveListener(eventType EventType, id string)
RemoveListener does nothing.
type SeverityEmitter ¶ added in v1.0.0
type SeverityEmitter interface {
EventEmitter
EmitDebug(eventType EventType, message string)
EmitInfo(eventType EventType, message string)
EmitWarn(eventType EventType, message string)
EmitError(eventType EventType, message string)
EmitFatal(eventType EventType, message string)
EmitTrace(eventType EventType, message string)
}
SeverityEmitter is an interface that can emit events with severity
func NewDefaultSeverityEmitter ¶ added in v1.0.0
func NewDefaultSeverityEmitter(emitter EventEmitter) SeverityEmitter
NewDefaultSeverityEmitter creates a new default severity emitter
type SeverityEvent ¶ added in v1.0.0
SeverityEvent represents an event with severity information
func NewSeverityEvent ¶ added in v1.0.0
func NewSeverityEvent(eventType EventType, message string, severity string) *SeverityEvent
NewSeverityEvent creates a new event with severity
func (*SeverityEvent) WithSeverity ¶ added in v1.0.0
func (e *SeverityEvent) WithSeverity(severity string) *SeverityEvent
WithSeverity sets the severity of the event
type SimpleSeverityEmitter ¶ added in v1.0.0
type SimpleSeverityEmitter struct {
// contains filtered or unexported fields
}
SimpleSeverityEmitter provides a simple way to emit events with severity
func NewSimpleSeverityEmitter ¶ added in v1.0.0
func NewSimpleSeverityEmitter(emitter EventEmitter) *SimpleSeverityEmitter
NewSimpleSeverityEmitter creates a new simple severity emitter
func (*SimpleSeverityEmitter) EmitDebug ¶ added in v1.0.0
func (e *SimpleSeverityEmitter) EmitDebug(eventType EventType, message string)
EmitDebug emits a debug level event
func (*SimpleSeverityEmitter) EmitError ¶ added in v1.0.0
func (e *SimpleSeverityEmitter) EmitError(eventType EventType, message string)
EmitError emits an error level event
func (*SimpleSeverityEmitter) EmitFatal ¶ added in v1.0.0
func (e *SimpleSeverityEmitter) EmitFatal(eventType EventType, message string)
EmitFatal emits a fatal level event
func (*SimpleSeverityEmitter) EmitInfo ¶ added in v1.0.0
func (e *SimpleSeverityEmitter) EmitInfo(eventType EventType, message string)
EmitInfo emits an info level event
func (*SimpleSeverityEmitter) EmitTrace ¶ added in v1.0.0
func (e *SimpleSeverityEmitter) EmitTrace(eventType EventType, message string)
EmitTrace emits a trace level event
func (*SimpleSeverityEmitter) EmitWarn ¶ added in v1.0.0
func (e *SimpleSeverityEmitter) EmitWarn(eventType EventType, message string)
EmitWarn emits a warning level event
func (*SimpleSeverityEmitter) EmitWithSeverity ¶ added in v1.0.0
func (e *SimpleSeverityEmitter) EmitWithSeverity(eventType EventType, message string, severity string)
EmitWithSeverity emits an event with severity information in the data