Skip to content

Extensions — admit one backend service and host-owned projection #66

Description

@zenithruneblade

Define one safe backend extension path without turning extension packages into Litestar plug-ins.

This is a bounded child of #63. Canonical law remains in ADR 05 — Extensions, ADR 11 — Backend and ADR 14 — Workers.

The current Vessel composition root is intentionally closed: an extension may not mutate a live Litestar app, inject arbitrary middleware, publish an unreviewed route bundle, start background work during register(), or acquire persistence/effect authority merely because its code was selected. The extensible seam must be a shaped, owner-qualified contribution consumed by the host.

First working slice

Boundary

The result is not a general Controller/middleware import hook. Extensions contribute typed application material to an explicit owner; Core composes the HTTP and lifecycle surface. A new public backend contribution kind requires an accepted owner and amendments to ADRs 05/11 before implementation.

Open decision

Choose the smallest first contract and decide whether its host adapter is a generic operation endpoint or an explicit Core controller adapter. Do not invent an arbitrary route-descriptor language merely to make this issue pass.

Connections: #21 registration, #22 durable jobs, #23 artifacts, #29 application workflow, #42 services, #47 persistence, #65 package lifecycle.
Verification: assembly/duplicate fixtures, Litestar OpenAPI and authorization tests, process restart, and worker/recovery evidence where applicable. Shared contribution rules: #52.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:runtimeAgents, Graph, dispatch, orchestration, capabilities and workers.needs-designAn issue-specific implementation choice remains open; see Open decision.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions