Nexus
1.x
Docs/Nexus/Plugins
Open

Reading1 min
Updated31 Jul 2026
Sourcev1/infrastructure/plugins.mdx

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 Interface01

type Extension interface {
    Name() string
}

Lifecycle Hooks02

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 Plugins03

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

Built-in Plugins04

  • 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