Skip to content
Effect 4.0 is here. One ecosystem. Zero dependencies.

SocketRunner unstable

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 Since v4.0.0 Source

Layers

layer

unstable
Since v4.0.0

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>
Since v4.0.0

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>