Skip to content
Effect Days 2026 Get your ticket

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 internet addresses as numeric socket addresses 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>