effect-orpc as a thin Effect-aware layer around oRPC.
It does not replace oRPC. It lets you keep oRPC’s routing, validation, contracts, middleware, and client surface while using Effect for implementation logic.
Core pieces
Builder-first flow
Most applications start by creating a reusable procedure builder:procedure.ts
users.ts
Runtime boundaries
Effect-native steps are batched into one runtime boundary, soEffect.runPromiseExit runs only once when possible. Effect-native steps include .provide(...), .provideOptional(...), generator middleware, Effect-returning middleware, and .effect(...) handlers.
one-boundary.ts
effect-orpc carries current Effect context through native oRPC continuations and merges it into the next Effect boundary. Use the Node bridge guide when request-local Effect state must cross those split boundaries in Node.