good fit
Your team wants visible structure, not framework conventions
Plumego rewards teams that want route ownership, middleware order, and dependency wiring visible in code — not managed behind framework-owned registration.
Use Cases
You have already decided to use Plumego. This page maps seven concrete service scenarios to the exact modules involved, the fit signals to verify, and the best starting point for each. If you are still evaluating fit, start with Why Plumego instead.
Plumego becomes a stronger fit when the service shape needs to stay readable as the codebase grows, when multiple teams must start from one baseline, or when capability work should stay outside the HTTP kernel.
good fit
Plumego rewards teams that want route ownership, middleware order, and dependency wiring visible in code — not managed behind framework-owned registration.
good fit
Stable roots carry long-term compatibility promises. Capability work starts in x/* families so the kernel does not absorb every fast-moving concern.
slow down
If the team mainly wants routing and dependency setup handled invisibly, Plumego may feel more deliberate than productive.
Each card names the capability modules involved, the fit signals to verify, and the best starting page for that scenario.
internal api
Use Plumego when a pull request should let reviewers see which routes are registered, which middleware runs in order, and who owns each dependency — without opening framework source code.
Modules: core, router, contract, middleware stable roots only
platform service
Plumego is strongest when new services should begin from one readable reference layout rather than each team writing its own bootstrap and routing setup. Structural drift stays low when everyone reads the same canonical starting point.
Modules: reference/standard-service canonical reference
multi-tenant saas
When your service needs JWT-backed tenant identity, per-tenant quota enforcement, and policy evaluation that sits outside the HTTP kernel, reach for x/tenant. Stable roots carry the HTTP baseline; x/tenant carries the tenant layer without mixing the two concerns.
Modules: x/tenant beta — API stable between minor releases
ai service
Use x/ai when you need multi-provider abstraction, session lifecycle, streaming response handling, and tool-call routing alongside a stable HTTP kernel. Stable roots keep the transport layer compatible; x/ai absorbs the fast-moving AI capability work.
Modules: x/ai/provider, x/ai/session, x/ai/streaming, x/ai/tool beta surfaces — stable subpackages within experimental family
api gateway
Use x/gateway when your service needs to proxy requests to upstream backends, apply rewrite rules, or balance load across multiple targets. The stable HTTP kernel handles all transport; x/gateway owns the proxy and edge behavior layer.
Modules: x/gateway beta — API stable between minor releases
real-time service
Use x/websocket when your service needs persistent connections, room management, and broadcast alongside standard HTTP routes. WebSocket handling is registered explicitly on routes; the stable kernel does not learn WebSocket semantics.
Modules: x/websocket beta — API stable between minor releases
messaging service
Use x/messaging when your service dispatches or consumes jobs, outbound webhooks, pubsub events, or scheduled tasks alongside HTTP routes. The app-facing service layer is beta; subordinate primitives (mq, pubsub, scheduler) remain experimental.
Modules: x/messaging beta — app-facing service layer; primitives are experimental
Read Why Plumego for the longer team-level adoption decision, or inspect Architecture to understand which modules are stable versus experimental before committing.