Skip to content

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.

2 exports Added in v4.0.0 Source

Layers

layer

Added in v4.0.0 Source

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
>;

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
>;