Nexus

Plugins

Extend Nexus with 15 lifecycle hooks for audit, metrics, webhooks, and custom processing.

The plugin system lets you react to lifecycle events without modifying engine code. Each hook is a separate Go interface — implement only the events you care about.

Base Interface

type Extension interface {
    Name() string
}

Lifecycle Hooks

Request Events

HookWhen
OnRequestReceivedRequest enters the pipeline
OnRequestCompletedProvider returns a response
OnRequestFailedRequest fails
OnRequestCachedResponse served from cache

Provider Events

HookWhen
OnProviderFailedProvider call fails
OnCircuitOpenedCircuit breaker opens
OnFallbackTriggeredFallback provider used

Guardrail Events

HookWhen
OnGuardrailBlockedRequest blocked by guardrail
OnGuardrailRedactedContent redacted by guardrail

Tenant & Key Events

HookWhen
OnTenantCreatedNew tenant created
OnTenantDisabledTenant disabled
OnKeyCreatedAPI key created
OnKeyRevokedAPI key revoked

Budget Events

HookWhen
OnBudgetWarning80% budget threshold
OnBudgetExceededBudget exceeded

Registering Plugins

gw := nexus.New(
    nexus.WithExtension(audithook.New(recorder)),
    nexus.WithExtension(observability.NewMetricsExtension()),
    nexus.WithExtension(relayhook.NewWebhook("https://hooks.example.com/nexus")),
)

Built-in Plugins

  • audit_hook — Records lifecycle events for audit trails (Chronicle integration)
  • observability — Increments atomic counters for operational metrics
  • relay_hook — Forwards events as webhooks to external systems

On this page