event

package
v1.0.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 6, 2025 License: Apache-2.0 Imports: 0 Imported by: 4

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

View Source
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

type Event struct {
	Type    EventType
	Message string
	Data    any
}

Event represents an emitted event.

func NewEvent

func NewEvent(eventType EventType, message string) *Event

NewEvent creates a new event.

Parameters:

  • eventType: The type of the event.
  • message: The message of the event.

Returns:

  • *Event: A new Event instance.

func (*Event) WithData

func (event *Event) WithData(data any) *Event

WithData sets the data of the event. It returns a new event with the data set.

Parameters:

  • data: The data to set.

Returns:

  • *Event: A new Event instance with the data set.

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 EventType

type EventType string

EventType represents the type of event.

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

type SeverityEvent struct {
	*Event
	Severity string
}

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

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL