package handler import ( "github.com/zitadel/zitadel/internal/eventstore" ) type HandlerConfig struct { Eventstore *eventstore.Eventstore } type Handler struct { Eventstore *eventstore.Eventstore Sub *eventstore.Subscription EventQueue chan eventstore.Event } func NewHandler(config HandlerConfig) Handler { return Handler{ Eventstore: config.Eventstore, EventQueue: make(chan eventstore.Event, 100), } } func (h *Handler) Subscribe(aggregates ...eventstore.AggregateType) { h.Sub = eventstore.SubscribeAggregates(h.EventQueue, aggregates...) } func (h *Handler) SubscribeEvents(types map[eventstore.AggregateType][]eventstore.EventType) { h.Sub = eventstore.SubscribeEventTypes(h.EventQueue, types) } func (h *Handler) Unsubscribe() { if h.Sub == nil { return } h.Sub.Unsubscribe() }