Agora

Agora

The AdonisJS ecosystem — context, diagnostics, resilience, durable, telescope, authz, collaboration, media, filter, payments, agent and authkit.

Agora

Agora is a family of production-grade libraries for AdonisJS — a Greek gathering place for your app's cross-cutting concerns. Each library ships on its own, but they compose: they share context, emit to one diagnostics bus, and surface in one observability console.

The libraries

  • Context — ambient request/tenant/correlation context across HTTP, queue, durable and ace.
  • Diagnostics — a diagnostics bus over node:diagnostics_channel with an OpenTelemetry auto-bridge.
  • Resilience — timeout / retry / circuit-breaker / failover policies, with a distributed breaker store.
  • Durable — durable, resumable, cross-process workflows.
  • Telescope — a Telescope-style observability console with an extensible dashboard.
  • Authz — DB-backed roles & permissions that feed AdonisJS Bouncer, with wildcards, tenancy and ace commands.
  • Collaboration — collaborative editing (CRDT) for AdonisJS, with Yjs/Automerge/edge engines, Redis presence, version control, anchored comments and React client hooks.
  • Media — owner collections, image conversions, and column attachments on top of @adonisjs/drive.
  • Filter — a typed query-param filter language for Lucid, with defineFilter classes, offset & cursor pagination, relations via whereHas, full-text and vector-similarity search, and a typed client with codegen.
  • Payments — multi-gateway payments and Cashier-style billing, with 18 gateways behind one driver contract, invoice emission and method-based routing.
  • Agent — a governed, durable-ready AI agent: streaming chat, tool-calling, HITL approvals, quota/cost accounting and multi-agent delegation.
  • AuthKit — a full OIDC/OAuth2 Authorization Server (IdP) + OIDC client + React ergonomics: MFA, passwordless, device flow, DPoP and more.

How they fit together

Everything is wired through small Symbol.for('@agora/<lib>:<name>') capability slots, so a library lights up its neighbours when present and no-ops when absent — no hard dependencies between repos. Install only what you need.

Cross-cutting shapes are shared the same way — matched structurally, never imported. See Conventions for the ones that hold ecosystem-wide, starting with pagination.

On this page