name: effect-facet-unstable-rpc-rpcserver
description: Guidance for facet effect/unstable/rpc/RpcServer focused on APIs like make, layer, and layerHttp. Load after effect-skill-router when this facet is the primary owner.
Effect Facet unstable/rpc/RpcServer
Owned scope
- Owns only
effect/unstable/rpc/RpcServer.
- Parent module:
effect/unstable/rpc.
- Source anchor:
packages/effect/src/unstable/rpc/RpcServer.ts.
What it is for
- Module-specific APIs and usage patterns for Effect programs.
API quick reference
make
layer
layerHttp
layerProtocolHttp
layerProtocolSocketServer
layerProtocolStdio
layerProtocolWebsocket
layerProtocolWorkerRunner
makeNoSerialization
makeProtocolHttp
makeProtocolSocketServer
makeProtocolStdio
makeProtocolWebsocket
makeProtocolWithHttpEffect
makeProtocolWithHttpEffectWebsocket
makeProtocolWorkerRunner
Protocol
RpcServer
- Full API list:
references/api-reference.md
How to use it
- Start with constructor-style APIs to build values/services before composing operations.
- Keep runtime/execute APIs at edges; compose pure transformations before execution.
- Assume unstable APIs can evolve quickly; isolate usage behind thin local adapters.
Starter example
import { RpcServer } from "effect/unstable/rpc/RpcServer";
const value = RpcServer.make();
const next = RpcServer.layerProtocolWorkerRunner(value);
Common pitfalls
- Concurrency helpers can hide ordering/cancellation behavior; test interruption and race paths.
- Unstable module contracts may change; avoid coupling core app logic directly to experimental details.
Not covered here
- Sibling facets under the same parent are out of scope:
effect-facet-unstable-rpc-rpc (effect/unstable/rpc/Rpc)
effect-facet-unstable-rpc-rpcclient (effect/unstable/rpc/RpcClient)
effect-facet-unstable-rpc-rpcclienterror (effect/unstable/rpc/RpcClientError)
effect-facet-unstable-rpc-rpcgroup (effect/unstable/rpc/RpcGroup)
effect-facet-unstable-rpc-rpcmessage (effect/unstable/rpc/RpcMessage)
effect-facet-unstable-rpc-rpcmiddleware (effect/unstable/rpc/RpcMiddleware)
effect-facet-unstable-rpc-rpcschema (effect/unstable/rpc/RpcSchema)
effect-facet-unstable-rpc-rpcserialization (effect/unstable/rpc/RpcSerialization)
effect-facet-unstable-rpc-rpctest (effect/unstable/rpc/RpcTest)
effect-facet-unstable-rpc-rpcworker (effect/unstable/rpc/RpcWorker)
effect-facet-unstable-rpc-utils (effect/unstable/rpc/Utils)
- Parent module ownership belongs to
effect-module-unstable-rpc.
Escalate to
effect-module-unstable-rpc for parent module-wide workflows.
effect-skill-router for cross-module routing and ownership checks.
Reference anchors
- Facet source:
packages/effect/src/unstable/rpc/RpcServer.ts
- Parent tests:
packages/effect/test/cluster/MessageStorage.test.ts
- Parent tests:
packages/effect/test/rpc/Rpc.test.ts
- API details:
references/api-reference.md
- Usage notes:
references/usage-reference.md
- Ownership mapping:
references/owner.md