Skip to content

Runner

Cluster runner metadata for processes that can host entity shards.

A Runner combines the stable RunnerAddress used to contact a process, the shard groups that process participates in, and the relative weight used when the sharding service distributes shards across healthy runners.

2 exports Added in v4.0.0 Source

Constructors

make

Added in v4.0.0 Source

Constructs a Runner from its network address, shard groups, and relative shard-assignment weight.

When to use

Use to build runner metadata from an existing RunnerAddress, shard groups, and relative weight when registering or exchanging a cluster runner.

Details

The groups array lists the shard groups the runner can host. During shard assignment, the runner's address is added to each group's hash ring with weight as its relative weight.

Gotchas

This helper constructs the value without runtime schema validation, so only pass trusted RunnerAddress, groups, and weight values.

See

  • Runner for the value created by this helper
  • RunnerAddress for the network address accepted in props.address

Signature

declare function make(props: {
  readonly address: RunnerAddress;
  readonly groups: readonly Array<string>;
  readonly weight: number;
}): Runner

Models

Runner

Added in v4.0.0 Source

Represents a cluster runner that can host entities.

Details

Each runner has a unique network address, the shard groups it participates in, and a relative weight used when assigning shards across runners.

Signature

declare class Runner extends {
  readonly address: RunnerAddress;
  readonly groups: readonly Array<string>;
  readonly weight: number;
} {
  constructor(...args: [props: {
    readonly address: RunnerAddress;
    readonly groups: readonly Array<string>;
    readonly weight: number;
  }, options?: MakeOptions]);
  readonly "~effect/cluster/Runner": "~effect/cluster/Runner";
  static readonly decodeSync: (input: string, options?: ParseOptions) => Runner;
  static readonly encodeSync: (input: Runner, options?: ParseOptions) => string;
  static format: Formatter<Runner, string>;
  [NodeInspectSymbol](): string;
  "~effect/interfaces/Equal"(that: Runner): boolean;
  "~effect/interfaces/Hash"(): number;
  toString(): string;
}