Relay

Go Packages

Quick reference for all Relay Go packages and their public APIs.

This is a reference map of every package in the module, what it exports, and when you'd use it.

Root package

Import: github.com/xraph/relay

ExportTypePurpose
RelaystructRoot webhook delivery engine
New(opts...)funcConstructor (requires WithStore)
OptiontypeFunctional option type
ConfigstructRuntime configuration
DefaultConfig()funcReturns sensible defaults
DefaultRetrySchedulevar[5s, 30s, 2m, 15m, 2h]
WithStore, WithLogger, WithConcurrency, etc.funcsConfiguration options
ErrNoStore, ErrEventTypeNotFound, ErrEndpointNotFound, etc.errorsSentinel errors

id

Import: github.com/xraph/relay/id

TypeID-based identifiers. See Identity.

ExportPurpose
IDThe identifier type (single struct)
PrefixPrefix type for entity classification
New(prefix)Generate a new ID
Parse(s)Parse a TypeID string
ParseWithPrefix(s, prefix)Parse with prefix validation
MustParse(s)Parse or panic
NilZero-value ID
PrefixEventType, PrefixEndpoint, PrefixEvent, PrefixDelivery, PrefixDLQ, PrefixSecretPrefix constants
NewEventTypeID(), NewEndpointID(), etc.Convenience constructors
ParseEventTypeID(s), ParseEndpointID(s), etc.Convenience parsers

catalog

Import: github.com/xraph/relay/catalog

ExportPurpose
CatalogIn-memory cached service
NewCatalog(store, cfg, logger)Constructor
WebhookDefinitionEvent type descriptor
EventTypeDatabase entity
StorePersistence interface
ValidatorJSON Schema validator
Match(pattern, eventType)Glob pattern matcher
ListOptsPagination options
RegisterOption, WithScopeAppID, WithMetadataRegistration options

endpoint

Import: github.com/xraph/relay/endpoint

ExportPurpose
ServiceEndpoint management
NewService(store, logger)Constructor
EndpointDomain entity
StorePersistence interface
InputCreate/update DTO
ListOptsPagination options
ValidationErrorInput validation error

event

Import: github.com/xraph/relay/event

ExportPurpose
EventDomain entity
StorePersistence interface
ListOptsPagination/filter options

delivery

Import: github.com/xraph/relay/delivery

ExportPurpose
EngineDelivery worker pool
NewEngine(store, dlq, cfg, logger)Constructor
EngineConfigEngine configuration
EngineStoreInterface the engine needs
DeliveryDomain entity
StorePersistence interface
SenderHTTP webhook sender
RetrierRetry decision logic
ResultDelivery attempt result
DecisionOutcome enum (Delivered, Retry, DLQ, DisableEndpoint)
StateDelivery state (pending, delivered, failed)
ListOptsPagination options

dlq

Import: github.com/xraph/relay/dlq

ExportPurpose
ServiceDLQ management
NewService(store, logger)Constructor
EntryDLQ entry entity
StorePersistence interface
ListOptsPagination/filter options

signature

Import: github.com/xraph/relay/signature

ExportPurpose
Sign(payload, secret, timestamp)Compute HMAC-SHA256 signature
Verify(payload, secret, timestamp, sig)Verify signature
GenerateSecret()Generate whsec_ signing secret
SignerStateless signer struct

ratelimit

Import: github.com/xraph/relay/ratelimit

ExportPurpose
LimiterToken bucket rate limiter
New()Constructor
Allow(endpointID, rateLimit)Non-blocking check
Wait(ctx, endpointID, rateLimit)Blocking wait
Reset(endpointID)Clear endpoint state

observability

Import: github.com/xraph/relay/observability

ExportPurpose
MetricsPrometheus metrics holder
NewMetrics(registerer)Register metrics
RecordDelivery(status, latency)Record a delivery attempt
TracerOpenTelemetry tracer
NewTracer()Constructor
StartDeliverySpan(...)Start a delivery span
EndDeliverySpan(...)End a delivery span

api

Import: github.com/xraph/relay/api

ExportPurpose
HandlerHTTP admin API handler
NewHandler(store, catalog, epSvc, dlqSvc, logger)Constructor
ServeHTTP(w, r)Implements http.Handler

store

Import: github.com/xraph/relay/store

ExportPurpose
StoreAggregate interface composing all subsystem stores

Implementations: store/memory, store/postgres, store/bunstore.

extension

Import: github.com/xraph/relay/extension

ExportPurpose
ExtensionForge extension adapter
NewExtension(opts...)Constructor
OptionExtension option type
WithPrefix(path)Set URL prefix (default: /webhooks)
Handler(store, catalog, epSvc, dlqSvc)Create admin API handler
Prefix()Get configured prefix

scope

Import: github.com/xraph/relay/scope

ExportPurpose
Capture(ctx)Extract app/org IDs from context
Restore(ctx, appID, orgID)Inject scope into context

On this page