Skip to content
CommunicationDocs 1.3.x

In-Process Transport ​

Orders and Inventory can run on one Server. A local client reaches Inventory without opening a socket, but still goes through the router and configured server middleware. It is not a direct call to the handler function.

Local calls retain the application boundary Local client APIs exchange copied protobuf messages through shared admission and server middleware for all four RPC kinds, with cooperative cancellation and explicit transport, security and telemetry limits. One Server / monolith, BFF or tests Choose the client APIserver.client(): local / remotelocalClient(): local onlyhasService(): typeName lookup HTTP coexistenceserver.start() binds a listenerlocal works before start()check TLS / framing / proxies In-memory boundarycreateLocalTransport()Protobuf copies · cloned headersNo sockets / TLSBest-effort back-pressure Shared RPC boundaryrequestGate + readMaxBytesconfigured server interceptorsvalidation / authz / errorsURL + marker never grant access Four RPC kindsunary · server-stream · client-stream · bidirectionalAll preserve order; break does not cancel a stream Cooperative cancellationhandler observes AbortSignalstop neither waits nor kills work1.3 abort / yield: unpublished Testing and observabilitytransportParityTest + in-memory OTelspan parents differ; sizes not wire bytestest HTTP / TLS / proxies separately
Local and HTTP clients can coexist. server.client() selects a local service or configured remoteResolver; local tests do not establish wire, TLS or proxy guarantees.

A local call ​

With inventory registered on server and InventoryService generated:

typescript
const client = server.client(InventoryService);
const stock = await client.checkStock({ sku: 'A-1' });

A local call needs no server.start(). Calling a non-local service needs a configured resolver. Local tests do not prove TLS, HTTP framing or proxy behavior.

Go deeper ​

Find a section from the full guide

The detailed material is preserved on a separate page. Earlier section links still work here.