examples: with-in-process-transport showcasing co-located services#17
examples: with-in-process-transport showcasing co-located services#17intech wants to merge 2 commits into
Conversation
Migrate all 14 examples from pnpm 10 to pnpm 11.0.4 (stable). pnpm 11
no longer reads the `pnpm` field from package.json — configuration is
moved into per-example `pnpm-workspace.yaml`.
Per-example changes (14 packages):
- package.json: remove `"pnpm": { "onlyBuiltDependencies": [...] }` block
- pnpm-workspace.yaml (new): replace deprecated `onlyBuiltDependencies`
with `allowBuilds` map; preserve any `overrides` from the old `pnpm`
field (performance-test-server, runn)
- pnpm-lock.yaml: regenerate under pnpm 11 (lockfileVersion 9.0 retained)
Special cases:
- basic-service-tsx: add `esbuild: true` to allowBuilds (tsx runtime
requires esbuild for transpilation)
- runn: add `protobufjs: true` to allowBuilds (alongside @bufbuild/buf)
- performance-test-server: pre-existing protobufjs override and build
dependency preserved
- cross-runtime-test: pnpm-lock.yaml is gitignored (no change tracked)
Smoke-tested locally with CONNECTUM_LOCAL=1 against pack/ tarballs in
5 representative examples (basic-service-node, auth, with-events-nats,
with-custom-interceptor, runn): install + buf:generate + test/typecheck
all green. Final lockfiles regenerated without CONNECTUM_LOCAL — no
`pack/` paths committed.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…local invoke Two services (Orders, Inventory) co-located in one process, calling each other through server.client(ServiceDesc) — automatically routed to local invoke via the in-process transport. Includes e2e tests and latency benchmark (~5.86x speedup vs HTTP/2 loopback on Node 25 dev box).
|
Warning Rate limit exceeded
You’ve run out of usage credits. Purchase more in the billing tab. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: ⛔ Files ignored due to path filters (14)
📒 Files selected for processing (43)
✨ Finishing Touches🧪 Generate unit tests (beta)
Tip 💬 Introducing Slack Agent: The best way for teams to turn conversations into code.Slack Agent is built on CodeRabbit's deep understanding of your code, so your team can collaborate across the entire SDLC without losing context.
Built for teams:
One agent for your entire SDLC. Right inside Slack. Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Summary
Adds a new example,
with-in-process-transport, demonstrating the registry-basedin-process transport added in
@connectum/core.OrdersService,InventoryService) registered on a singlecreateServer({...}).OrdersService.CreateOrdercomposesInventoryService.Reserveviaserver.client(InventoryService)— automatically routed to local invoke, no HTTP/2 loopback, no TCP port used for the inner call.tests/e2e/e2e.test.ts) covering both transports and a polyglot scenario where in-process and HTTP/2 callers observe consistent state.bench/latency.ts) measuring in-process vs HTTP/2 loopback — observed ~5.86x p50 speedup on Node 25.Test plan
pnpm run buf:generate— generates protobuf bindingspnpm test— 6/6 e2e tests pass (in-process + HTTP/2 + polyglot scenarios)CONNECTUM_LOCAL=1 pnpm installagainst locally packed framework tarballsRelated
Companion to the framework PR adding the in-process transport.
🤖 Generated with Claude Code