module

package
v0.85.260915 Latest Latest
Warning

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

Go to latest
Published: Sep 14, 2026 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Overview

Package module defines the ordered Program Module Spec, Definition Catalog, lifecycle SPI, and immutable runtime bindings.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Barrier

type Barrier string
const (
	BarrierBeforeCommit Barrier = "before_commit"
	BarrierScopeEnd     Barrier = "scope_end"
	BarrierNone         Barrier = "none"
)

type Binding

type Binding interface {
	Open(OpenContext) (Instance, error)
}

Binding is immutable and safe for concurrent Open calls after Compile returns.

type Catalog added in v0.67.260718

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

func MustCatalog added in v0.67.260718

func MustCatalog(definitions ...Definition) *Catalog

func NewCatalog added in v0.67.260718

func NewCatalog(definitions ...Definition) (*Catalog, error)

func (*Catalog) Definitions added in v0.67.260718

func (catalog *Catalog) Definitions() []Definition

func (*Catalog) Lookup added in v0.67.260718

func (catalog *Catalog) Lookup(name string) Definition

type Context added in v0.67.260718

type Context struct {
	Context    context.Context
	TraceID    string
	Metadata   metadata.Set
	RoundTrip  int
	EventID    string
	Sequence   uint64
	ObservedAt time.Time
	Emitter    event.Emitter
}

type Definition

type Definition interface {
	Name() string
}

type Executor

type Executor string
const (
	ExecutorCaller      Executor = "caller"
	ExecutorOrderedLane Executor = "ordered_lane"
)

type FinishCause

type FinishCause string
const (
	FinishCompleted FinishCause = "completed"
	FinishFailed    FinishCause = "failed"
	FinishCanceled  FinishCause = "canceled"
	FinishReplaced  FinishCause = "replaced"
)

type FinishContext

type FinishContext struct {
	Context
	Cause FinishCause
}

type Handler

type Handler[T any] func(Context, T) error

type Instance

type Instance interface {
	Bind(Registrar)
	Finish(FinishContext) error
}

type Lifetime

type Lifetime string
const (
	LifetimeExchange  Lifetime = "exchange"
	LifetimeRoundTrip Lifetime = "round_trip"
)

type Mutator

type Mutator[T any] func(Context, *T) error

type NopInstance

type NopInstance struct{}

func (NopInstance) Bind added in v0.67.260718

func (NopInstance) Bind(Registrar)

func (NopInstance) Finish

type OpenContext

type OpenContext struct {
	TraceID   string
	Metadata  metadata.Set
	Lifetime  Lifetime
	RoundTrip int
	StartedAt time.Time
}

type Overflow

type Overflow string
const (
	OverflowBlock       Overflow = "block"
	OverflowDrop        Overflow = "drop"
	OverflowFailRequest Overflow = "fail_request"
)

type Policy

type Policy struct {
	Executor Executor
	Barrier  Barrier
	Overflow Overflow
	Capacity int
}

func AsyncBarrierPolicy

func AsyncBarrierPolicy(overflow Overflow) Policy

func AsyncPolicy

func AsyncPolicy(overflow Overflow) Policy

func SyncPolicy

func SyncPolicy() Policy

type ProgramDefinition added in v0.67.260718

type ProgramDefinition interface {
	Definition
	Lifetime() Lifetime
	CompileProgram(jsontext.Value) (Binding, error)
}

type Registrar added in v0.67.260718

type Registrar interface {
	OnRequestStarted(Policy, Handler[lifecycle.RequestStarted])
	OnRequestBodyChunk(Policy, Handler[lifecycle.BodyChunk])
	OnRequestBodyEnded(Policy, Handler[lifecycle.RequestBodyEnded])
	OnRoundTripStarted(Policy, Handler[lifecycle.RoundTripStarted])
	OnDirectivePrepared(Policy, Handler[lifecycle.DirectivePrepared])
	OnUpstreamStarted(Policy, Handler[lifecycle.UpstreamStarted])
	OnUpstreamResponseStarted(Policy, Handler[lifecycle.ResponseStarted])
	OnUpstreamBodyChunk(Policy, Handler[lifecycle.BodyChunk])
	OnUpstreamBodyEnded(Policy, Handler[lifecycle.BodyEnded])
	OnRoundTripFinished(Policy, Handler[lifecycle.RoundTripFinished])
	OnRecoveryStarted(Policy, Handler[lifecycle.RecoveryStarted])
	OnRecoveryDecided(Policy, Handler[lifecycle.RecoveryDecided])
	OnRecoveryFinished(Policy, Handler[lifecycle.RecoveryFinished])
	OnDownstreamResponseStarted(Policy, Handler[lifecycle.ResponseStarted])
	OnDownstreamBodyChunk(Policy, Handler[lifecycle.BodyChunk])
	OnDownstreamSSEData(Policy, Handler[lifecycle.SSEData])
	OnDownstreamSSEComment(Policy, Handler[lifecycle.SSEComment])
	OnDownstreamBodyEnded(Policy, Handler[lifecycle.BodyEnded])
	OnRequestFinished(Policy, Handler[lifecycle.RequestFinished])
	MutateOutboundRequest(Policy, Mutator[http.Request])
	MutateOutboundBodyChunk(Policy, Mutator[lifecycle.BodyDraft])
	MutateUpstreamResponse(Policy, Mutator[lifecycle.ResponseDraft])
	MutateUpstreamBodyChunk(Policy, Mutator[lifecycle.BodyDraft])
}

type Spec

type Specs added in v0.67.260718

Jump to

Keyboard shortcuts

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