---
title: "Syncing annotations across users, devices, or sessions | Nutrient"
canonical_url: "https://www.nutrient.io/guides/web/annotations/synchronization/"
md_url: "https://www.nutrient.io/guides/web/annotations/synchronization.md"
last_updated: "2026-05-23T00:08:18.167Z"
description: "Drive real-time collaboration with synchronized annotations using Nutrient’s Document Engine with Instant synchronization. Learn to choose the right architecture for review workflows and enhance productivity with multiuser sync."
---

# Synchronizing annotations across users, devices, and sessions

Nutrient Web SDK supports three approaches for synchronizing annotations to your server and across multiple users, devices, or sessions.

If you’re choosing between Instant JSON, XFDF, and server-backed synchronization, start with [how to choose Instant JSON vs. XFDF vs. server-backed sync](https://www.nutrient.io/guides/web/annotations/import-and-export/choose-persistence-strategy.md). For multiuser review systems, refer to the [review persistence architecture](https://www.nutrient.io/guides/web/annotations/synchronization/review-persistence-architecture.md).

1. With Document Engine, not using Instant synchronization

2. With Document Engine and Instant synchronization

3. Building your own solution using our APIs

All three approaches are deployed on your infrastructure and can be integrated with our web SDK. For integrating with our mobile or desktop SDKs, Instant synchronization and custom-built solutions are supported.

|                               | Built in, without Instant sync | Built in, with Instant sync | Building your own |
| ----------------------------- | ------------------------------ | --------------------------- | ----------------- |
| [Operational mode](https://www.nutrient.io/guides/web/about/operational-modes.md)          | With Document Engine           | With Document Engine        | Any               |
| Backend                       | [Document Engine](https://www.nutrient.io/guides/document-engine.md)            | [Document Engine](https://www.nutrient.io/guides/document-engine.md)         | Any               |
| Concurrent users per document | 1                              | Multiple                    | Multiple          |
| Real-time sync                | Built in                       | Built in                    | Not built in      |
| Conflict resolution           |                                | Built in                    | Not built in      |
| User authentication           | [Built in](https://www.nutrient.io/guides/document-engine/viewer/client-authentication.md)        | [Built in](https://www.nutrient.io/guides/web/instant-synchronization/authentication.md)    | Not built in      |
| Customizable permissions      | Built in                       | Built in                    | Not built in      |
| Incremental sync              | Built in                       | Built in                    | Not built in      |

## Web SDK with Document Engine

Nutrient Web SDK uses [Document Engine](https://www.nutrient.io/guides/document-engine.md) as its backend. Document Engine is our prebuilt solution for synchronizing documents and annotations to your server and across sessions, and for managing authentication. It’s delivered as a Docker container that can be deployed on your infrastructure.

Our web, mobile, and desktop SDKs connect your app to [Document Engine](https://www.nutrient.io/guides/document-engine.md), while your backend uses the server’s [JSON-based API](https://www.nutrient.io/guides/document-engine/json.md) to manage documents and annotations.

Web SDK with Document Engine without Instant synchronization is best used in scenarios where multiple users will **not** be working on the same document concurrently. If there will be multiple concurrent users, then you should use Instant synchronization because it has built-in conflict resolution.

Learn more about [Document Engine](https://www.nutrient.io/guides/document-engine.md).

## Instant synchronization

[Instant](https://www.nutrient.io/guides/web/instant-synchronization.md) is our prebuilt solution for synchronizing annotations across multiple concurrent users, devices, or sessions. It’s a licensable component that’s included as part of [Document Engine](https://www.nutrient.io/guides/document-engine.md).

[Try for Free](https://www.nutrient.io/try/)

[Launch Demo](https://www.nutrient.io/demo/instant-collaboration)

Instant consists of three parts: the Document Engine backend that synchronizes documents and annotations and manages authentication; the Nutrient Instant component that handles conflict resolution, version tracking, diffing, and merging; and the web, mobile, and desktop SDKs that integrate into your app.

Learn more about [Nutrient Instant](https://www.nutrient.io/guides/web/instant-synchronization.md).

## Building your own solution

Nutrient web, mobile, and desktop SDKs have easy-to-use APIs for importing/exporting annotations and forms data as part of a robust synchronization solution.

Before starting, take a quick look at the following guides:

- [Storing annotation data](https://www.nutrient.io/guides/web/annotations/synchronization/storing-annotation-data.md)

- [Conflict resolution](https://www.nutrient.io/guides/web/annotations/synchronization/conflict-resolution.md)

- [Instant JSON overview](https://www.nutrient.io/guides/web/json.md)

- [Event listeners](https://www.nutrient.io/guides/web/events/annotation.md)

When building your own solution, our technical support team will gladly help with questions specific to using our SDK. However, due to the complexity of building your own synchronization solution, support is limited to Nutrient technology.
---

## Related pages

- [Conflict resolution when synchronizing annotations](/guides/web/annotations/synchronization/conflict-resolution.md)
- [Storing annotation data](/guides/web/annotations/synchronization/storing-annotation-data.md)
- [Review persistence architecture](/guides/web/annotations/synchronization/review-persistence-architecture.md)

