Skip to content

Modules Overview

Plumego keeps long-lived public packages at the repository root and places optional or fast-moving capabilities under x/*. This split is intentional: it keeps the stable surface small, keeps ownership easier to classify, and prevents the default learning path from being redefined by extension work.

TierCountAdoption guidance
Stable (GA)9 packagesProduction-ready. v1 compatibility promise applies.
Beta7 familiesAPI frozen between consecutive minor release refs. Production-safe with release-note checks before upgrading.
Experimental7 primary familiesAPI may change without a deprecation period. Wrap behind an app-local interface in stable service paths.

Full maturity evidence, per-extension dashboard, and release matrix: Status →


Synced from `specs/repo.yaml`

Stable roots 9

  • contract
  • core
  • router
  • middleware
  • security
  • store
  • health
  • log
  • metrics

Synced from `specs/task-routing.yaml`

Primary extension families 14

  • x/tenant
  • x/fileapi
  • x/messaging
  • x/gateway
  • x/rest
  • x/websocket
  • x/frontend
  • x/observability
  • x/openapi
  • x/resilience
  • x/rpc
  • x/data
  • x/ai
  • x/validate

These lists are generated by the prebuild sync scripts instead of being hand-maintained twice.

1

Default service path

kernel, router, contract, middleware

2

Runnable shape

bootstrap, route wiring, handlers

3

Capability work

optional families, start from the primary entrypoint

4

Control plane

intent, machine rules, execution scope

stable roots
core router contract middleware security store health log metrics
x/* families
optional capability and protocol surfaces
control plane
reference docs specs tasks module.yaml
Work typeStart hereWhy
Kernel, lifecycle, route structure, transport contracts, or stable middlewareStable RootsThis is the default path every service should understand
Capability, protocol, tenant, gateway, data-topology, or observability-adapter workx/* FamilyOptional capability work should not expand stable roots
App-local bootstrap and service wiringReference AppThe canonical service shape lives outside runtime package ownership
Ownership rules, routing taxonomy, import boundaries, or execution scopeRepository BoundariesThese are docs/specs/tasks control-plane questions
If the work is aboutStart atThen go narrower when
Messaging, queues, pubsub, scheduling, or webhooksx/messagingThe task is clearly scheduler-, webhook-, pubsub-, or mq-specific
Edge transport, reverse proxying, or load balancingx/gatewayThe task is clearly discovery- or ipc-specific
Reusable resource-interface workx/restYou are inside a specific CRUD/resource controller concern
Higher-level observability adaptersx/observabilityThe task is clearly ops- or devtools-specific
Data topology, sharding, durable KV, or read/write splittingx/dataThe task is clearly cache-specific

Once the top-level question is clear, continue into the primer that matches the owning module.

These modules carry the v1 stable-root compatibility promise. They are the recommended first scope for production evaluation.

If the question is mainly aboutOpen this primer nextWhy this is the right next read
app construction, lifecycle, and route attachmentCore Primer · Stablecore owns the HTTP application kernel and the canonical lifecycle path
HTTP transport wrappers, request IDs, tracing, rate limiting, and access loggingMiddleware Primer · Stablemiddleware keeps ordering-sensitive HTTP behavior narrow and explicit
route matching, path parameters, route groups, and reverse routingRouter Primer · Stablerouter owns the trie-based route matching surface
request/response contracts, error model, context helpers, and trace metadataContract Primer · Stablecontract defines the canonical error and response shape every handler uses
auth primitives, JWT, password helpers, security headers, and input validationSecurity Primer · Stablesecurity provides fail-closed authentication and validation primitives
storage contracts, file abstractions, cache primitives, and idempotency contractsStore Primer · Stablestore defines the stable persistence layer before topology-heavy data concerns begin
liveness and readiness model types and health aggregationHealth Primer · Stablehealth owns the component checker contracts and readiness state model
base logging contracts and structured logger wiringLog Primer · Stablelog defines the logging surface that extensions and stable roots share
base metrics contracts and collector registrationMetrics Primer · Stablemetrics defines the metrics surface without owning exporter or adapter behavior

Start from the primary family entrypoint, not from subordinate packages. Use the maturity tier as your adoption signal.

API is frozen between consecutive minor release refs. Safe to adopt in production; check release notes before upgrading.

If the question is mainly aboutOpen this primer nextPromotedSubordinate packages
reusable CRUD transport and resource route standardizationx/rest Primerv0.2.0
real-time WebSocket connection lifecycle, hub management, or authx/websocket Primerv0.2.0
reverse proxying, gateway routing, load balancing, or edge transportx/gateway Primerv0.2.0x/gateway/discovery · x/gateway/ipc (experimental)
Prometheus exporters, OTel wiring, record buffering, or DB analyticsx/observability Primerv0.2.0x/observability/ops · x/observability/devtools (experimental)
multi-tenant resolution, policy, quota, rate limiting, or sessionx/tenant Primerv1.1.0resolve, policy, quota, ratelimit, session, store
static asset serving, embedded FS, or SPA fallback routingx/frontend Primerv1.1.0
app-facing queue, pubsub, scheduler, or webhook orchestrationx/messaging Primerv1.1.0 (app-facing)scheduler · webhook · pubsub · mq (subordinate primitives are experimental)

The parent family root is still experimental, but these subpackages have release-backed API stability at v1.1.0.

Beta surfacesParent family primerNotes
x/ai/provider · x/ai/session · x/ai/streaming · x/ai/toolx/ai PrimerUse these subpackages for stable AI work; remaining subpackages and the root family are experimental
x/data/file · x/data/idempotencyx/data PrimerUse these subpackages for stable file and idempotency work; topology surfaces and x/data/cache remain experimental

API compatibility is not frozen. Evaluate before adopting; wrap behind an app-local interface in stable service paths.

If the question is mainly aboutOpen this primer nextSubordinate packages
AI provider adapters, session, streaming, or tool invocationx/ai Primerprovider, session, streaming, tool are beta surfaces — see above; orchestration, semanticcache, distributed, resilience remain experimental
read-write splitting, sharding, durable KV, or idempotency topologyx/data Primerx/data/cache; file and idempotency are beta surfaces — see above
HTTP transport for file upload, download, or streaming deliveryx/fileapi Primer
shared circuit breakers, retry wrappers, or resilience adapters across extensionsx/resilience Primer
gRPC + HTTP service hosting or outbound RPC client poolingx/rpc Primer
OpenAPI 3.1 document generation from registered routesx/openapi Primer
explicit JSON binding and caller-owned request validationx/validate Primer

The current repo actively discourages broad or ambiguous roots such as ai, tenant, rest, pubsub, frontend, utils, or validator at the top level. If the name sounds like a feature catalog or a vague bucket, it is probably the wrong place to begin.