valkey

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Aug 26, 2026 License: MIT Imports: 8 Imported by: 0

Documentation

Overview

Package valkey distributes monotonic policy revision invalidations through Valkey without relying on lossy pub/sub delivery for correctness.

Index

Constants

View Source
const (
	DefaultPrefix       = "authorization"
	DefaultPollInterval = 30 * time.Second
)

Variables

View Source
var (
	ErrNilClient           = errors.New("authorization valkey client is nil")
	ErrInvalidPrefix       = errors.New("authorization valkey prefix is invalid")
	ErrInvalidPollInterval = errors.New("authorization valkey poll interval is invalid")
	ErrInvalidRevision     = errors.New("authorization valkey revision is invalid")
	ErrInvalidResponse     = errors.New("authorization valkey response is invalid")
	ErrNilHandler          = errors.New("authorization valkey handler is nil")
)

Functions

This section is empty.

Types

type Invalidator

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

func New

func New(client native.Client, options Options) (*Invalidator, error)

func (*Invalidator) Publish

func (invalidator *Invalidator) Publish(
	ctx context.Context,
	revision authorization.Revision,
) (bool, error)

Publish advances the durable invalidation revision and publishes a wakeup atomically. It returns false when the same or a newer revision already exists.

func (*Invalidator) Revision

func (invalidator *Invalidator) Revision(
	ctx context.Context,
) (authorization.Revision, error)

Revision reads the durable invalidation revision. A missing key means no policy has been published through this invalidator yet.

func (*Invalidator) Watch

func (invalidator *Invalidator) Watch(
	ctx context.Context,
	after authorization.Revision,
	handler func(authorization.Revision) error,
) error

Watch observes newer revisions. Pub/sub only wakes the watcher; every notification is verified against the durable key, and periodic polling continues if pub/sub disconnects or drops messages.

type Options

type Options struct {
	Prefix       string
	PollInterval time.Duration
}

Jump to

Keyboard shortcuts

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