SocketRunner
Runs cluster runner RPCs over a socket transport.
The full layer serves runner RPC handlers on a provided SocketServer, logs
the bound address, and provides Sharding and Runners clients when an
outgoing runner client protocol is available. This module also includes a
client-only socket runner layer for processes that need cluster clients
without starting a runner server or receiving shard assignments.
Layers
Layer that runs a cluster runner over the socket RPC protocol, providing
Sharding and Runners clients and logging the socket listen address.
When to use
Use when a cluster runner process should accept runner RPCs through a
provided SocketServer and receive shard assignments while exposing
Sharding and Runners services.
Details
It logs the bound SocketServer.address when the layer starts, formatting TCP
addresses as hostname:port and Unix socket addresses as their filesystem
path.
Gotchas
Although this layer serves runner RPCs with the provided SocketServer,
outgoing calls to other runners still require a Runners.RpcClientProtocol
service.
See
- layerClientOnly for the socket runner layer that only provides clients and does not receive shard assignments
- Runners.RpcClientProtocol for the outgoing runner client protocol required by this layer
Signature
declare const layer: Layer.Layer<Sharding.Sharding | Runners.Runners, never, Runners.RpcClientProtocol | ShardingConfig | RpcSerialization.RpcSerialization | SocketServer | MessageStorage | RunnerStorage.RunnerStorage | RunnerHealth>layerClientOnly
Provides a client-only socket runner layer that provides Sharding and Runners clients
without starting a runner server or receiving shard assignments.
When to use
Use to join a socket-based cluster as a client-only participant that can send messages without hosting shards.
Signature
declare const layerClientOnly: Layer.Layer<Sharding.Sharding | Runners.Runners, never, Runners.RpcClientProtocol | ShardingConfig | MessageStorage | RunnerStorage.RunnerStorage>