---
title: "Server-side PDF annotation (programmatic) | Nutrient"
canonical_url: "https://www.nutrient.io/guides/document-engine/annotations/architecture-diagram/"
md_url: "https://www.nutrient.io/guides/document-engine/annotations/architecture-diagram.md"
last_updated: "2026-06-24T08:10:54.120Z"
description: "Learn to programmatically annotate PDF documents using the Web SDK and Document Engine APIs, with automatic storage in a PostgreSQL database."
---

# Architecture diagram

After you create a document via [upload](https://www.nutrient.io/../../file-management/create-a-document-from-upload/) or [URL](https://www.nutrient.io/../../file-management/create-a-document-from-url/), you can annotate it via the Web SDK or Document Engine APIs. Annotations are automatically persisted in the PostgreSQL database.![Nutrient Web SDK sends new annotation data to Document Engine, which saves it in the database.](@/assets/guides/document-engine/annotating-a-document.png)

1. Nutrient Web SDK sends new annotation data to Document Engine, which stores it in the database.

2. Document Engine returns the annotation ID to the Web SDK.
---

## Related pages

- [Create](/guides/document-engine/annotations/create.md)
- [Edit](/guides/document-engine/annotations/edit.md)
- [How to flatten PDF annotations effectively](/guides/document-engine/annotations/flatten.md)
- [Annotate on images](/guides/document-engine/annotations/annotate-on-images.md)
- [Remove](/guides/document-engine/annotations/remove.md)
- [PDF annotation server](/guides/document-engine/annotations.md)

