# @fluidframework/protocol-definitions

> Fluid protocol definitions

Latest version **4.0.0** (published 2024-04-11) · MIT license · 0 weekly downloads

## Install

```sh
npm install @fluidframework/protocol-definitions
pnpm add @fluidframework/protocol-definitions
yarn add @fluidframework/protocol-definitions
bun add @fluidframework/protocol-definitions
```

## Health

**Score 40/100 (D)** — status: abandoned.

Positive: has types; esm support; no vulnerabilities; high maintenance score.

Warnings: low downloads.

Negative: abandoned.

## Facts

| | |
|---|---|
| Version | 4.0.0 |
| Published | 2024-04-11 |
| First published | 2020-08-31 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Dependencies | 0 |
| Unpacked size | 283.6 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 4946 |
| Author | Microsoft and contributors |
| Maintainers | ms-fluid-bot, curtisman |

## Links

- npm: https://www.npmjs.com/package/@fluidframework/protocol-definitions
- Repository: https://github.com/microsoft/FluidFramework
- Homepage: https://fluidframework.com
- Issues: https://github.com/microsoft/FluidFramework/issues
- npm.io page: https://npm.io/package/@fluidframework/protocol-definitions

## Recent versions

- 4.0.0 (latest) — 2024-04-11
- 3.2.0-237840 (dev) — 2024-02-17
- 3.1.0-223007 (next) — 2023-12-14
- 3.0.0-185796 (canary) — 2023-08-28
- 3.2.0 — 2024-03-08
- 3.2.0-236943 — 2024-02-14
- 3.2.0-231454 — 2024-01-22
- 3.1.0 — 2024-01-04
- 3.1.0-220363 — 2023-12-08
- 3.0.0 — 2023-08-31
- 2.1.0 — 2023-07-24
- 2.0.0 — 2023-07-14
- 1.2.0 — 2023-04-14
- 1.1.0 — 2022-10-12
- 1.1.0-97957 — 2022-10-05
- … 103 more at https://npm.io/package/@fluidframework/protocol-definitions/versions

## README

# @fluidframework/protocol-definitions

Core set of Fluid protocol interfaces shared between services and clients.
These interfaces should always be back and forward compatible.

**Topics covered below:**

-   [NoOps](#NoOps)

## NoOps

Definition: NoOps are empty operation message, with the type of `MessageType.NoOp`. They are used to send an updated referenceSequenceNumber to service. Relay service is free to coalesce these messages, or fully drop them if another op was used to update Minimum Sequence Number, to a number equal to or higher than the referenceSequenceNumber in Noop. Client will send NoOps periodically, see `NoopHeuristic`.

Expectations: NoOps can be coalesced by service, which means:

1. NoOp can be dropped by service. In such case, we observe a gap in clientSequenceNumber (otherwise all ops for a given clientId have sequential clientSequenceNumber values).
2. NoOp can be delayed by service (sequenced later in time) and be reordered relative to ops that naturally follow it. That said, reordering can only happen across ops from different clients (if more ops are sent and sequenced by given client, then noop is simply dropped in such case).

See [GitHub](https://github.com/microsoft/FluidFramework) for more details on the Fluid Framework and packages within.

---
_Source: https://npm.io/package/@fluidframework/protocol-definitions · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
