stream

package
v0.2.0 Latest Latest
Warning

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

Go to latest
Published: Apr 25, 2026 License: MIT Imports: 6 Imported by: 0

Documentation

Overview

Package stream creates and manages ebind's JetStream streams.

Index

Constants

View Source
const (
	TaskStream     = "EBIND_TASKS"
	ResponseStream = "EBIND_RESP"
	DLQStream      = "EBIND_DLQ"

	TaskSubjectPrefix         = "TASKS."
	TargetedTaskSubjectPrefix = "TASKS_TARGET."
	ResponseSubjectPrefix     = "RESP."
	DLQSubjectPrefix          = "DLQ."
)

Variables

This section is empty.

Functions

func EnsureStreams

func EnsureStreams(ctx context.Context, js jetstream.JetStream, cfg Config) error

EnsureStreams creates or updates all three ebind streams idempotently.

func TargetToken

func TargetToken(target string) string

func TargetedTaskFilter

func TargetedTaskFilter(target string) string

func TargetedTaskSubject

func TargetedTaskSubject(target, name string) string

func TaskPublishSubject

func TaskPublishSubject(name, target string) string

func TaskSubject

func TaskSubject(name string) string

func WaitMetaLeader

func WaitMetaLeader(ctx context.Context, js jetstream.JetStream) error

WaitMetaLeader polls until the JetStream meta-leader is elected or ctx expires. Needed on cluster startup before any stream operation.

Types

type Config

type Config struct {
	Replicas        int           // 1 for dev, 3 for HA
	TaskMaxAge      time.Duration // default 24h
	ResponseMaxAge  time.Duration // default 1h
	DLQMaxAge       time.Duration // default 7d
	DuplicateWindow time.Duration // default 5m
}

Jump to

Keyboard shortcuts

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