Help us shape the future of Go! Take the 2026 Go Developer Survey

graphsubscriptions

package
v2.9.1 Latest Latest
Warning

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

Go to latest
Published: Oct 21, 2026 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Index

Constants

View Source
const NotificationChannelBufferSize = 10

NotificationChannelBufferSize is the buffer size for task subscription channels

Variables

This section is empty.

Functions

This section is empty.

Types

type Manager

type Manager struct {
	// contains filtered or unexported fields
}

Manager manages all active subscriptions for real-time updates

func GetGlobalManager

func GetGlobalManager() *Manager

GetGlobalManager returns the global subscription manager instance

func NewManager

func NewManager() *Manager

NewManager creates a new subscription manager

func (*Manager) HasRedis

func (sm *Manager) HasRedis() bool

HasRedis reports whether this manager is configured to distribute notifications across processes via redis

func (*Manager) Publish

func (sm *Manager) Publish(userID, orgID string, notification Notification) error

Publish sends a notification to the subscribers it is addressed to in this process, and, when Redis is configured, to subscribers of other processes as well

func (*Manager) Subscribe

func (sm *Manager) Subscribe(userID, orgID string, ch chan Notification)

Subscribe adds a new subscriber for notifications addressed to the user directly as well as those addressed to the whole org the user is currently in

func (*Manager) Unsubscribe

func (sm *Manager) Unsubscribe(userID, orgID string, ch chan Notification)

Unsubscribe removes a subscriber

func (*Manager) WithRedis

func (sm *Manager) WithRedis(client *redis.Client) *Manager

WithRedis enables cross-process notification delivery

type Notification

type Notification interface{}

Notification is an interface that represents a notification that can be published This avoids import cycles with ent/generated The ent/generated.Notification type has ID and UserID fields that satisfy this interface

type RawNotification

type RawNotification struct {
	Payload []byte
}

RawNotification wraps a notification received over Redis that hasn't been unmarshaled into its concrete type yet

Jump to

Keyboard shortcuts

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