# add

Add a node to the HashRing.

## Signatures

```ts
export declare const add: {
    <A extends PrimaryKey.PrimaryKey>(node: A, options?: {
        readonly weight?: number;
    }): <E, R>(ref: RefHashRing<A, E, R>) => Effect.Effect<HashRing.HashRing<A>, E, R>;
    <A extends PrimaryKey.PrimaryKey, E, R>(ref: RefHashRing<A, E, R>, node: A, options?: {
        readonly weight?: number;
    }): Effect.Effect<HashRing.HashRing<A>, E, R>;
};
```

## Why

Add a node to the HashRing. The operation remains attached to the RefSubject's versioned state
boundary.

## Ownership and lifetime

Running add performs one serialized hash ring transition and resolves with its committed value.
It acquires no resource; failures and services remain those of the source ref.
