[API reference](https://evolu.dev/docs/api-reference) › [@evolu/common](https://evolu.dev/docs/api-reference/common) › [local‑first/Protocol](https://evolu.dev/docs/api-reference/common/local-first/Protocol) › ApplyProtocolMessageAsRelayOptions

Defined in: [packages/common/src/local-first/Protocol.ts:1335](https://github.com/evoluhq/evolu/blob/113517df8a8da4e4eed41363077878e657b22fca/packages/common/src/local-first/Protocol.ts#L1335)

Options for [applyProtocolMessageAsRelay](https://evolu.dev/docs/api-reference/common/local-first/Protocol/functions/applyProtocolMessageAsRelay). The callbacks must not throw,
because a throw is a defect that aborts the Run.

## Properties

<a id="broadcast"></a>

### broadcast?

```ts
readonly optional broadcast?: (ownerId: string & Brand<"Id"> & Brand<"OwnerId">, message: ProtocolMessage) => void;
```

Defined in: [packages/common/src/local-first/Protocol.ts:1343](https://github.com/evoluhq/evolu/blob/113517df8a8da4e4eed41363077878e657b22fca/packages/common/src/local-first/Protocol.ts#L1343)

To broadcast a protocol message to all subscribers.

<a id="rangesmaxsize"></a>

### rangesMaxSize?

```ts
readonly optional rangesMaxSize?: number & Brand<"NonNaN"> & Brand<"Finite"> & Brand<"Int"> & Brand<"Between3000-100000">;
```

Defined in: [packages/common/src/local-first/Protocol.ts:1352](https://github.com/evoluhq/evolu/blob/113517df8a8da4e4eed41363077878e657b22fca/packages/common/src/local-first/Protocol.ts#L1352)

---

<a id="subscribe"></a>

### subscribe?

```ts
readonly optional subscribe?: (ownerId: string & Brand<"Id"> & Brand<"OwnerId">) => void;
```

Defined in: [packages/common/src/local-first/Protocol.ts:1337](https://github.com/evoluhq/evolu/blob/113517df8a8da4e4eed41363077878e657b22fca/packages/common/src/local-first/Protocol.ts#L1337)

To subscribe an owner for broadcasting.

<a id="totalmaxsize"></a>

### totalMaxSize?

```ts
readonly optional totalMaxSize?: number & Brand<"NonNaN"> & Brand<"Finite"> & Brand<"Int"> & Brand<"Between1000000-100000000">;
```

Defined in: [packages/common/src/local-first/Protocol.ts:1350](https://github.com/evoluhq/evolu/blob/113517df8a8da4e4eed41363077878e657b22fca/packages/common/src/local-first/Protocol.ts#L1350)

The maximum size of the relay's responses and broadcasts, and of the
requests it accepts. A larger request is a
[ProtocolInvalidDataError](https://evolu.dev/docs/api-reference/common/local-first/Protocol/interfaces/ProtocolInvalidDataError).

---

<a id="unsubscribe"></a>

### unsubscribe?

```ts
readonly optional unsubscribe?: (ownerId: string & Brand<"Id"> & Brand<"OwnerId">) => void;
```

Defined in: [packages/common/src/local-first/Protocol.ts:1340](https://github.com/evoluhq/evolu/blob/113517df8a8da4e4eed41363077878e657b22fca/packages/common/src/local-first/Protocol.ts#L1340)

To unsubscribe an owner from broadcasting.