ShardId.ts
ShardId.ts overview
Section titled “ShardId.ts overview”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
Exports Grouped by Category
Section titled “Exports Grouped by Category”constructors
Section titled “constructors”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
toStringfor formatting an existing shard id asgroup:idfromStringfor constructing a cached shard id from thegroup:idstring form
Signature
declare const make: (group: string, id: number) => ShardIdSince v4.0.0
converting
Section titled “converting”toString
Section titled “toString”Formats a shard identifier as group:id.
Signature
declare const toString: (shardId: { readonly group: string; readonly id: number }) => stringSince v4.0.0
decoding
Section titled “decoding”fromString
Section titled “fromString”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) => ShardIdSince v4.0.0
fromStringEncoded
Section titled “fromStringEncoded”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 }Since v4.0.0
guards
Section titled “guards”isShardId
Section titled “isShardId”Returns true when the value carries the ShardId runtime marker.
Signature
declare const isShardId: (u: unknown) => u is ShardIdSince v4.0.0
models
Section titled “models”ShardId (interface)
Section titled “ShardId (interface)”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}Since v4.0.0
schemas
Section titled “schemas”ShardId
Section titled “ShardId”Schema for shard identifiers encoded as { group, id } objects and decoded
via make.
Signature
declare const ShardId: S.declare<ShardId, ShardId>Since v4.0.0