This commit is contained in:
2026-04-13 08:10:14 +03:00
commit a4455b1170
18 changed files with 1063 additions and 0 deletions
+30
View File
@@ -0,0 +1,30 @@
package events
import "log/slog"
// EventBus — интерфейс шины событий приложения.
// Чистый pub/sub брокер без внешних зависимостей.
// Сервисы сами публикуют события и подписываются на них.
type EventBus interface {
Publish(event string)
Subscribe(event string, handler func())
}
// eventBus — конкретная реализация, скрыта от внешних пакетов.
type eventBus struct{}
// NewEventBus создаёт шину событий.
func NewEventBus() EventBus {
slog.Info("шина событий создана")
return &eventBus{}
}
// Publish публикует событие.
func (b *eventBus) Publish(event string) {
slog.Info("событие опубликовано", "event", event)
}
// Subscribe подписывается на событие.
func (b *eventBus) Subscribe(event string, handler func()) {
slog.Info("подписка на событие", "event", event)
}