Skip to content
AdvancedDocs 1.3.x

Guarantees and limits ​

For a first working RPC, start with the Quickstart. This reference separates generated types, configured runtime enforcement and application responsibilities; it is not a setup checklist.

Version scope

This matrix targets the 1.3 source contract. Source and test links are pinned to framework revision f145616; they do not establish npm release availability or certify a deployment. Compare installed versions with the migration guidance. Regenerate existing catalogs after upgrading the plugin to obtain its updated request types.

Contract and runtime matrix ​

What is providedLayer and ownerRequired setupObservable result and limitEvidence
Typed catalog callsCompile time: Connectum catalog plugin using protobuf-es typesGenerate and import the catalog augmentation; run TypeScript checking.Unknown procedure keys and incompatible request initializers produce type errors in checked code. This does not validate arbitrary runtime input or business rules.Source; generation and consumer test; negative type cases
Unary request validationRuntime: upstream @connectrpc/validate / Protovalidate, wired by ConnectumDeclare constraints, generate their descriptors and install validation in the service's effective interceptor chain.A constraint violation rejects with InvalidArgument before the unary handler runs. A .proto file or generated TypeScript alone does not enforce it.Source; validation and handler-exclusion test
Startup failure cleanupRuntime: Connectum coreUse server.start() and handle its rejected promise.A synchronously throwing ready listener rejects startup, releases the bound port and automatic signal listeners, and leaves the server stopped. This is process cleanup, not application rollback.Source; port and listener cleanup test
Inherited signal and deadline for ctx.callRuntime: Connectum dispatch frame and ConnectRPC transportConfigure the catalog; register a local target or configure its remote resolver. Omit overrides to inherit the inbound request context.The downstream call receives the inbound signal and remaining timeout; a longer timeout override is clamped. A supplied signal replaces inheritance. Cancellation is cooperative, not side-effect rollback.Source; signal and deadline tests
One outer outgoing interceptor chainRuntime: Connectum core using the ConnectRPC interceptor pipelineConfigure outgoingInterceptors and use ctx.call, ctx.stream or server.client(). A standalone catalog client takes its own chain.The chain wraps each catalog call, including local and resolver routes, outside the resolver transport's middleware. Retry inside the chain can repeat downstream execution; this is not exactly-once RPC execution.Local/remote wiring; remote wrapper; route, kind and order tests

Configuration boundaries ​

  • createServer() alone does not install validation or authentication. createDefaultInterceptors() includes error handling and validation unless disabled; its timeout, bulkhead, circuit breaker and retry policies are opt-in. See Interceptors.
  • Authentication requires configured identity verification and authorization policy. Proto annotations alone do not establish a caller's identity. Add authentication and authorization when the service needs them.
  • Catalog typing does not configure deployment topology. Local registration and remote resolvers decide where calls go; no automatic credential forwarding is implied. See Service catalog.
  • server.localClient() and createLocalTransport() do not inherit the server's outgoing chain. Configuring the same policy in both the outer chain and a resolver transport runs that policy in both places; the framework cannot deduplicate it. See Client interceptors.
  • Local calls still need the applicable authentication and authorization setup. In-process execution does not exercise TCP, TLS or every wire-serialization detail. Leaving a stream loop with break is not itself cancellation; see the local transport boundary and in-process guide.

Not guaranteed ​

  • Type checking does not prove business correctness, runtime input validity or compatibility with every deployed contract version.
  • Cancellation does not undo committed work or forcibly stop signal-unaware code.
  • Shared middleware does not make local and network calls identical in identity, security, serialization, latency or failure behavior.
  • Connectum does not automatically provide distributed transactions, exactly-once execution or exactly-once event delivery.

For setup, follow Validation, Server lifecycle or Service communication.