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.
日本語に翻訳
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