Skip to content

ShardId.ts

The ShardId module models the address of a shard inside an Effect Cluster shard group. A shard id is made from a string group and numeric id, and the module gives that pair stable equality, hashing, primary-key behavior, schema support, and conversion to and from the group:id string form used by routing and storage boundaries.

Since v4.0.0



Creates or reuses the cached ShardId for the specified shard group and numeric id.

When to use

Use to create a ShardId when the shard group and numeric id are already known, such as after a routing decision or after decoding stored shard-id parts.

Details

Repeated calls with the same group and id return the same cached ShardId instance. The returned value stores those fields, compares by group and id, formats as group:id, and uses that string form for hashing and primary keys.

Gotchas

make does not compute a shard from an entity id or check whether the shard belongs to the current sharding configuration. Pass the shard group and numeric id produced by the routing or storage layer.

See

  • toString for formatting an existing shard id as group:id
  • fromString for constructing a cached shard id from the group:id string form

Signature

declare const make: (group: string, id: number) => ShardId

Source

Since v4.0.0

Formats a shard identifier as group:id.

Signature

declare const toString: (shardId: { readonly group: string; readonly id: number }) => string

Source

Since v4.0.0

Parses a group:id string into a cached ShardId.

Details

Throws an Error when the string has no colon separator or the id segment is not numeric.

Signature

declare const fromString: (s: string) => ShardId

Source

Since v4.0.0

Parses a group:id string into plain shard id parts.

Details

Throws an Error when the string has no colon separator or the id segment is not numeric.

Signature

declare const fromStringEncoded: (s: string) => { readonly group: string; readonly id: number }

Source

Since v4.0.0

Returns true when the value carries the ShardId runtime marker.

Signature

declare const isShardId: (u: unknown) => u is ShardId

Source

Since v4.0.0

Identifier for a shard within a shard group, with equality, hashing, and primary key behavior based on the group:id string form.

Signature

export interface ShardId extends Equal.Equal, Hash.Hash, PrimaryKey.PrimaryKey {
readonly [TypeId]: typeof TypeId
readonly group: string
readonly id: number
}

Source

Since v4.0.0

Schema for shard identifiers encoded as { group, id } objects and decoded via make.

Signature

declare const ShardId: S.declare<ShardId, ShardId>

Source

Since v4.0.0