> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tensor9.com/llms.txt
> Use this file to discover all available pages before exploring further.

# DocumentDB (MongoDB)

> AWS DocumentDB (MongoDB). A document database compatible with the MongoDB API, run as a cluster of instances over shared replicated storage.

**On this page**

* [Coverage by target cloud](#coverage-by-target-cloud)
* [How the targets compare](#how-the-targets-compare)
  * [Max adaptation](#max-adaptation)
  * [Infrastructure-only adaptation](#infrastructure-only-adaptation)
* [On Google Cloud, Azure, OCI, and Private Kubernetes](#on-google-cloud-azure-oci-and-private-kubernetes)
  * [Via MongoDB Atlas](#via-mongodb-atlas)
* [On Google Cloud](#on-google-cloud)
  * [Via Firestore (MongoDB compatibility)](#via-firestore-mongodb-compatibility)
* [On Azure](#on-azure)
  * [Via Azure Cosmos DB for MongoDB (vCore)](#via-azure-cosmos-db-for-mongodb-vcore)
* [On OCI](#on-oci)
  * [Via Oracle Autonomous JSON Database (MongoDB API)](#via-oracle-autonomous-json-database-mongodb-api)

## Coverage by target cloud

| Target             | Available |
| ------------------ | --------- |
| Google Cloud       | ✓         |
| Azure              | ✓         |
| OCI                | ✓         |
| Private Kubernetes | ✓         |

## How the targets compare

Each row compares a capability of DocumentDB (MongoDB) with its adaptation on each target.
A dash means this row is not stated for that target.

### Max adaptation

#### Runtime surface

| Capability                       | DocumentDB (MongoDB)                                                                      | Google Cloud, Azure, OCI, and Private Kubernetes · MongoDB Atlas            | Google Cloud · Firestore (MongoDB compatibility) | OCI · Oracle Autonomous JSON Database (MongoDB API)             |
| -------------------------------- | ----------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- | ------------------------------------------------ | --------------------------------------------------------------- |
| Multi-document transactions      | Yes - no retryable writes (set retryWrites=false); ambiguous commit on timeout            | Yes - full ACID, cross-shard, retryable                                     | Yes                                              | Yes                                                             |
| Change streams                   | Yes - 5.0+: primary or secondary nodes                                                    | Yes                                                                         | Partial - preview                                | Partial - 26ai beta, not for production                         |
| Correlated \$lookup              | No                                                                                        | Yes                                                                         | Yes                                              | Partial - restricted (localField cannot be an array or missing) |
| \$graphLookup                    | No                                                                                        | Yes                                                                         | No                                               | No                                                              |
| Text search                      | Yes - since 5.0; English-only, case-insensitive, one text index / collection              | Yes                                                                         | Yes                                              | Yes - no collation with it                                      |
| Vector search                    | Yes - HNSW / IVFFlat indexes, up to 2,000 dimensions (5.0+)                               | Yes - Atlas Vector Search                                                   | No                                               | Partial - \$vectorSearch, Beta preview (26ai)                   |
| Capped / time-series collections | No                                                                                        | Yes                                                                         | No                                               | No                                                              |
| Server-side JS / mapReduce       | Partial - mapReduce supported in 8.0; server-side JS (\$where / \$function) not supported | Yes - supported but deprecated (mapReduce since 5.0; server-side JS in 8.0) | No                                               | No                                                              |
| Collation                        | Yes - new in 8.0                                                                          | Yes                                                                         | No                                               | No                                                              |
| API coverage                     | full                                                                                      | full                                                                        | partial                                          | partial                                                         |

#### Limits

| Capability                                            | DocumentDB (MongoDB) | Google Cloud, Azure, OCI, and Private Kubernetes · MongoDB Atlas | Google Cloud · Firestore (MongoDB compatibility)             | OCI · Oracle Autonomous JSON Database (MongoDB API) |
| ----------------------------------------------------- | -------------------- | ---------------------------------------------------------------- | ------------------------------------------------------------ | --------------------------------------------------- |
| Maximum storage · cluster volume vs per node          | 128 TiB              | 14 TB / node                                                     | -                                                            | -                                                   |
| vCPU range · smallest to largest instance             | 2-192                | 2-96                                                             | serverless                                                   | ECPU-based (2+, 3× auto-scale)                      |
| Memory range · smallest to largest instance           | 4-1,536 GiB          | 2-768 GiB                                                        | serverless                                                   | auto (per ECPU)                                     |
| Storage autoscaling                                   | Yes                  | Yes - compute-tier auto-scaling too                              | Yes - serverless: storage and throughput scale automatically | Yes - compute and storage auto-scale up to 3×       |
| Maximum storage                                       | 128 TiB              | -                                                                | serverless (auto)                                            | -                                                   |
| Maximum storage · cluster volume vs Autonomous DB max | 128 TiB              | -                                                                | -                                                            | 384 TB                                              |

### Infrastructure-only adaptation

#### Runtime surface

| Capability                       | DocumentDB (MongoDB)                                                                      | Google Cloud, Azure, OCI, and Private Kubernetes · MongoDB Atlas            | Google Cloud · Firestore (MongoDB compatibility) | Azure · Azure Cosmos DB for MongoDB (vCore)                 | OCI · Oracle Autonomous JSON Database (MongoDB API)             |
| -------------------------------- | ----------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- | ------------------------------------------------ | ----------------------------------------------------------- | --------------------------------------------------------------- |
| Multi-document transactions      | Yes - no retryable writes (set retryWrites=false); ambiguous commit on timeout            | Yes - full ACID, cross-shard, retryable                                     | Yes                                              | Partial - capped at a 30-second transaction lifetime        | Yes                                                             |
| Change streams                   | Yes - 5.0+: primary or secondary nodes                                                    | Yes                                                                         | Partial - preview                                | Yes                                                         | Partial - 26ai beta, not for production                         |
| Correlated \$lookup              | No                                                                                        | Yes                                                                         | Yes                                              | No - no let / pipeline form                                 | Partial - restricted (localField cannot be an array or missing) |
| \$graphLookup                    | No                                                                                        | Yes                                                                         | No                                               | Yes                                                         | No                                                              |
| Text search                      | Yes - since 5.0; English-only, case-insensitive, one text index / collection              | Yes                                                                         | Yes                                              | Partial - one text index per collection, no regex / CJK     | Yes - no collation with it                                      |
| Vector search                    | Yes - HNSW / IVFFlat indexes, up to 2,000 dimensions (5.0+)                               | Yes - Atlas Vector Search                                                   | No                                               | Yes - IVF / HNSW / DiskANN, up to 16,000 dimensions         | Partial - \$vectorSearch, Beta preview (26ai)                   |
| Capped / time-series collections | No                                                                                        | Yes                                                                         | No                                               | No                                                          | No                                                              |
| Server-side JS / mapReduce       | Partial - mapReduce supported in 8.0; server-side JS (\$where / \$function) not supported | Yes - supported but deprecated (mapReduce since 5.0; server-side JS in 8.0) | No                                               | No                                                          | No                                                              |
| Collation                        | Yes - new in 8.0                                                                          | Yes                                                                         | No                                               | Partial - many operators; no general case-insensitive index | No                                                              |
| API coverage                     | full                                                                                      | full                                                                        | partial                                          | high                                                        | partial                                                         |

#### Limits

| Capability                                            | DocumentDB (MongoDB) | Google Cloud, Azure, OCI, and Private Kubernetes · MongoDB Atlas | Google Cloud · Firestore (MongoDB compatibility)             | Azure · Azure Cosmos DB for MongoDB (vCore)                  | OCI · Oracle Autonomous JSON Database (MongoDB API) |
| ----------------------------------------------------- | -------------------- | ---------------------------------------------------------------- | ------------------------------------------------------------ | ------------------------------------------------------------ | --------------------------------------------------- |
| Maximum storage · cluster volume vs per node          | 128 TiB              | 14 TB / node                                                     | -                                                            | -                                                            | -                                                   |
| vCPU range · smallest to largest instance             | 2-192                | 2-96                                                             | serverless                                                   | -                                                            | ECPU-based (2+, 3× auto-scale)                      |
| Memory range · smallest to largest instance           | 4-1,536 GiB          | 2-768 GiB                                                        | serverless                                                   | -                                                            | auto (per ECPU)                                     |
| Storage autoscaling                                   | Yes                  | Yes - compute-tier auto-scaling too                              | Yes - serverless: storage and throughput scale automatically | Partial - storage scales up on demand, but not automatically | Yes - compute and storage auto-scale up to 3×       |
| Maximum storage                                       | 128 TiB              | -                                                                | serverless (auto)                                            | -                                                            | -                                                   |
| Maximum storage · cluster volume vs per shard         | 128 TiB              | -                                                                | -                                                            | 32 TiB / shard                                               | -                                                   |
| vCPU range · smallest to largest, per shard           | 2-192                | -                                                                | -                                                            | 1-64                                                         | -                                                   |
| Memory range · smallest to largest, per shard         | 4-1,536 GiB          | -                                                                | -                                                            | 2-256 GiB                                                    | -                                                   |
| Maximum storage · cluster volume vs Autonomous DB max | 128 TiB              | -                                                                | -                                                            | -                                                            | 384 TB                                              |

## On Google Cloud, Azure, OCI, and Private Kubernetes

### Via MongoDB Atlas

| Operation                                        | Area                    | Support   | Depth        | Notes                                                                                  |
| ------------------------------------------------ | ----------------------- | --------- | ------------ | -------------------------------------------------------------------------------------- |
| collStats                                        | Admin & diagnostics     | Supported | Full surface | -                                                                                      |
| dbStats                                          | Admin & diagnostics     | Supported | Full surface | -                                                                                      |
| explain                                          | Admin & diagnostics     | Supported | Full surface | query plan                                                                             |
| hello                                            | Admin & diagnostics     | Supported | Full surface | topology + health handshake                                                            |
| isMaster                                         | Admin & diagnostics     | Supported | Full surface | legacy topology handshake                                                              |
| ping                                             | Admin & diagnostics     | Supported | Full surface | -                                                                                      |
| serverStatus                                     | Admin & diagnostics     | Supported | Full surface | -                                                                                      |
| delete                                           | CRUD                    | Supported | Common       | -                                                                                      |
| find                                             | CRUD                    | Supported | Common       | -                                                                                      |
| findAndModify                                    | CRUD                    | Supported | Common       | atomic read-modify-write                                                               |
| getMore                                          | CRUD                    | Supported | Common       | cursor iteration                                                                       |
| insert                                           | CRUD                    | Supported | Common       | -                                                                                      |
| killCursors                                      | CRUD                    | Supported | Most usage   | -                                                                                      |
| update                                           | CRUD                    | Supported | Common       | -                                                                                      |
| Change streams (\$changeStream / watch)          | Change streams          | Supported | Most usage   | primary or secondary nodes                                                             |
| collMod                                          | Collections & databases | Supported | Full surface | -                                                                                      |
| create                                           | Collections & databases | Supported | Most usage   | create collection, incl. capped / time-series which DocumentDB lacks                   |
| drop                                             | Collections & databases | Supported | Most usage   | -                                                                                      |
| dropDatabase                                     | Collections & databases | Supported | Full surface | -                                                                                      |
| listCollections                                  | Collections & databases | Supported | Most usage   | -                                                                                      |
| listDatabases                                    | Collections & databases | Supported | Most usage   | -                                                                                      |
| renameCollection                                 | Collections & databases | Supported | Full surface | -                                                                                      |
| createIndexes                                    | Indexes                 | Supported | Most usage   | -                                                                                      |
| dropIndexes                                      | Indexes                 | Supported | Most usage   | -                                                                                      |
| listIndexes                                      | Indexes                 | Supported | Most usage   | -                                                                                      |
| aggregate                                        | Query & aggregation     | Supported | Common       | the full pipeline, including correlated \$lookup / \$graphLookup that DocumentDB lacks |
| count                                            | Query & aggregation     | Supported | Common       | -                                                                                      |
| distinct                                         | Query & aggregation     | Supported | Most usage   | -                                                                                      |
| mapReduce                                        | Query & aggregation     | Supported | Full surface | -                                                                                      |
| Transactions (startTransaction / commit / abort) | Transactions            | Supported | Most usage   | full ACID, cross-shard, retryable; DocumentDB caps this                                |

#### How it works

Your application's MongoDB driver connects directly to MongoDB Atlas. These database requests are the **data plane**. The driver and MongoDB wire protocol stay unchanged, and Tensor9 does not proxy or translate these database requests.

Management requests, such as snapshots, restore, replicas, failover, and configuration changes, form the **control plane**. Tensor9 serves the DocumentDB API in the customer's appliance and translates those requests to the target's management API. The sections below describe which operations have equivalents and which return errors.

<div className="t9-diagram-scroll" role="region" aria-label="Scrollable diagram" tabIndex={0}>
  <img className="t9-diagram-light" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMjUyIiB2aWV3Qm94PSIwIDAgODM2IDI1MiIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJEYXRhYmFzZSByZXF1ZXN0cyAoTW9uZ29EQiB3aXJlIHByb3RvY29sKSBjb25uZWN0IGRpcmVjdGx5IHRvIE1vbmdvREIgQXRsYXMuIFRoZSBUZW5zb3I5IHNlcnZpY2UgYWRhcHRlciB0cmFuc2xhdGVzIERvY3VtZW50REIgQVBJIG1hbmFnZW1lbnQgY2FsbHMgdG8gQXRsYXMgQWRtaW4gQVBJLiI+PHN0eWxlPnRleHR7Zm9udC1mYW1pbHk6SW50ZXIsLWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsJ1NlZ29lIFVJJyxSb2JvdG8sJ0hlbHZldGljYSBOZXVlJyxBcmlhbCxzYW5zLXNlcmlmO2ZpbGw6IzMzNDE1NX08L3N0eWxlPgo8ZGVmcz48bWFya2VyIGlkPSJhaGQtbW9uZ29kYi1hdGxhcyIgdmlld0JveD0iMCAwIDEwIDEwIiByZWZYPSI4IiByZWZZPSI1IiBtYXJrZXJXaWR0aD0iNyIgbWFya2VySGVpZ2h0PSI3IiBvcmllbnQ9ImF1dG8tc3RhcnQtcmV2ZXJzZSI+PHBhdGggZD0iTTAsMCBMMTAsNSBMMCwxMCB6IiBmaWxsPSIjOTRhM2I4Ii8+PC9tYXJrZXI+PC9kZWZzPgo8cmVjdCB4PSI4IiB5PSIzNCIgd2lkdGg9IjgyMCIgaGVpZ2h0PSIyMDYiIHJ4PSIxNiIgZmlsbD0iI2Y4ZmFmYyIgc3Ryb2tlPSIjY2JkNWUxIiBzdHJva2Utd2lkdGg9IjEuNCIgc3Ryb2tlLWRhc2hhcnJheT0iNSA1Ii8+Cjx0ZXh0IHg9IjI2IiB5PSI1NCIgc3R5bGU9ImZvbnQ6IDcwMCAxMHB4IEludGVyLCBzYW5zLXNlcmlmOyBsZXR0ZXItc3BhY2luZzogMS4zcHg7IGZpbGw6ICM5NGEzYjg7IGZpbGw6IzA0Nzg1NyI+T04gTU9OR09EQiBBVExBUzwvdGV4dD4KPHJlY3QgeD0iMjYiIHk9Ijg4IiB3aWR0aD0iMTI4IiBoZWlnaHQ9IjExMiIgcng9IjEyIiBmaWxsPSIjZmZmIiBzdHJva2U9IiNlMmU4ZjAiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjkwIiB5PSIxMjYiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2NTAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMGYxNzJhOyBmb250LXNpemU6MTNweCI+WW91ciBhcHA8L3RleHQ+Cjx0ZXh0IHg9IjkwIiB5PSIxNDUiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjNjQ3NDhiIj5Nb25nb0RCIGRyaXZlcjwvdGV4dD4KPHRleHQgeD0iOTAiIHk9IjE2MiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDYwMCAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMDU5NjY5Ij51bmNoYW5nZWQ8L3RleHQ+Cjx0ZXh0IHg9IjIwMCIgeT0iODIiIHN0eWxlPSJmb250OiA3MDAgMTBweCBJbnRlciwgc2Fucy1zZXJpZjsgbGV0dGVyLXNwYWNpbmc6IDEuM3B4OyBmaWxsOiAjOTRhM2I4OyBmaWxsOiMwNDc4NTciPkRBVEFCQVNFIFJFUVVFU1RTIMK3IERJUkVDVCBDT05ORUNUSU9OPC90ZXh0Pgo8bGluZSB4MT0iMTU0IiB5MT0iMTA4IiB4Mj0iNjEwIiB5Mj0iMTA4IiBzdHJva2U9IiMwNTk2NjkiIHN0cm9rZS13aWR0aD0iMi4yIiBtYXJrZXItZW5kPSJ1cmwoI2FoZC1tb25nb2RiLWF0bGFzKSIvPgo8dGV4dCB4PSIzODIiIHk9IjEwMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwcHggJ1NGIE1vbm8nLCB1aS1tb25vc3BhY2UsICdKZXRCcmFpbnMgTW9ubycsIE1lbmxvLCBtb25vc3BhY2U7IGZpbGw6ICM2NDc0OGI7IGZpbGw6IzA0Nzg1NyI+TW9uZ29EQiB3aXJlIHByb3RvY29sPC90ZXh0Pgo8cmVjdCB4PSI2MTQiIHk9Ijc2IiB3aWR0aD0iMTk2IiBoZWlnaHQ9IjY0IiByeD0iMTIiIGZpbGw9IiNmZmYiIHN0cm9rZT0iI2UyZThmMCIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KPHRleHQgeD0iNzEyIiB5PSIxMDMiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2NTAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMGYxNzJhOyBmb250LXNpemU6MTJweCI+TW9uZ29EQiBBdGxhczwvdGV4dD4KPHRleHQgeD0iNzEyIiB5PSIxMjIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjNjQ3NDhiIj5Nb25nb0RCIGVuZ2luZTwvdGV4dD4KPHRleHQgeD0iMjAwIiB5PSIxNTgiIHN0eWxlPSJmb250OiA3MDAgMTBweCBJbnRlciwgc2Fucy1zZXJpZjsgbGV0dGVyLXNwYWNpbmc6IDEuM3B4OyBmaWxsOiAjOTRhM2I4Ij5NQU5BR0VNRU5UIFJFUVVFU1RTIMK3IFZJQSBURU5TT1I5PC90ZXh0Pgo8bGluZSB4MT0iMTU0IiB5MT0iMTk2IiB4Mj0iMzAwIiB5Mj0iMTk2IiBzdHJva2U9IiM5NGEzYjgiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNhaGQtbW9uZ29kYi1hdGxhcykiLz4KPHRleHQgeD0iMjI3IiB5PSIxODgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMHB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjNjQ3NDhiIj5Eb2N1bWVudERCIEFQSTwvdGV4dD4KPHJlY3QgeD0iMzA0IiB5PSIxNjQiIHdpZHRoPSIxODAiIGhlaWdodD0iNjYiIHJ4PSIxMiIgZmlsbD0iI2VjZmRmNSIgc3Ryb2tlPSIjMDU5NjY5IiBzdHJva2Utd2lkdGg9IjEuNyIvPgo8dGV4dCB4PSIzOTQiIHk9IjE5MSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDcwMCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICMwNDc4NTc7IGZvbnQtc2l6ZToxMnB4Ij5UZW5zb3I5PC90ZXh0PgogIDx0ZXh0IHg9IjM5NCIgeT0iMjA4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTAuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMDQ3ODU3Ij5zZXJ2aWNlIGFkYXB0ZXI8L3RleHQ+CjxsaW5lIHgxPSI0ODQiIHkxPSIxOTYiIHgyPSI2MTAiIHkyPSIxOTYiIHN0cm9rZT0iIzk0YTNiOCIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2FoZC1tb25nb2RiLWF0bGFzKSIvPgo8cmVjdCB4PSI2MTQiIHk9IjE2NCIgd2lkdGg9IjE5NiIgaGVpZ2h0PSI2NCIgcng9IjEyIiBmaWxsPSIjZmZmIiBzdHJva2U9IiNlMmU4ZjAiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjcxMiIgeT0iMTkxIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNjUwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzBmMTcyYTsgZm9udC1zaXplOjExLjVweCI+QXRsYXMgQWRtaW4gQVBJPC90ZXh0Pgo8dGV4dCB4PSI3MTIiIHk9IjIxMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM2NDc0OGIiPnRoZSB0YXJnZXQncyBtYW5hZ2VtZW50IEFQSTwvdGV4dD4KPC9zdmc+" alt="Database requests (MongoDB wire protocol) connect directly to MongoDB Atlas. The Tensor9 service adapter translates DocumentDB API management calls to Atlas Admin API." />

  <img className="t9-diagram-dark" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMjUyIiB2aWV3Qm94PSIwIDAgODM2IDI1MiIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJEYXRhYmFzZSByZXF1ZXN0cyAoTW9uZ29EQiB3aXJlIHByb3RvY29sKSBjb25uZWN0IGRpcmVjdGx5IHRvIE1vbmdvREIgQXRsYXMuIFRoZSBUZW5zb3I5IHNlcnZpY2UgYWRhcHRlciB0cmFuc2xhdGVzIERvY3VtZW50REIgQVBJIG1hbmFnZW1lbnQgY2FsbHMgdG8gQXRsYXMgQWRtaW4gQVBJLiI+PHN0eWxlPnRleHR7Zm9udC1mYW1pbHk6SW50ZXIsLWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsJ1NlZ29lIFVJJyxSb2JvdG8sJ0hlbHZldGljYSBOZXVlJyxBcmlhbCxzYW5zLXNlcmlmO2ZpbGw6I2NiZDVlMX08L3N0eWxlPgo8ZGVmcz48bWFya2VyIGlkPSJhaGQtbW9uZ29kYi1hdGxhcyIgdmlld0JveD0iMCAwIDEwIDEwIiByZWZYPSI4IiByZWZZPSI1IiBtYXJrZXJXaWR0aD0iNyIgbWFya2VySGVpZ2h0PSI3IiBvcmllbnQ9ImF1dG8tc3RhcnQtcmV2ZXJzZSI+PHBhdGggZD0iTTAsMCBMMTAsNSBMMCwxMCB6IiBmaWxsPSIjOTRhM2I4Ii8+PC9tYXJrZXI+PC9kZWZzPgo8cmVjdCB4PSI4IiB5PSIzNCIgd2lkdGg9IjgyMCIgaGVpZ2h0PSIyMDYiIHJ4PSIxNiIgZmlsbD0iIzFhMjYzMSIgc3Ryb2tlPSIjM2Q0ZjY2IiBzdHJva2Utd2lkdGg9IjEuNCIgc3Ryb2tlLWRhc2hhcnJheT0iNSA1Ii8+Cjx0ZXh0IHg9IjI2IiB5PSI1NCIgc3R5bGU9ImZvbnQ6IDcwMCAxMHB4IEludGVyLCBzYW5zLXNlcmlmOyBsZXR0ZXItc3BhY2luZzogMS4zcHg7IGZpbGw6ICM5NGEzYjg7IGZpbGw6ICM5MGRlYzgiPk9OIE1PTkdPREIgQVRMQVM8L3RleHQ+CjxyZWN0IHg9IjI2IiB5PSI4OCIgd2lkdGg9IjEyOCIgaGVpZ2h0PSIxMTIiIHJ4PSIxMiIgZmlsbD0iIzI2MjYyNiIgc3Ryb2tlPSIjM2Q0ZTY2IiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8dGV4dCB4PSI5MCIgeT0iMTI2IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNjUwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogI2M5Y2VkODsgZm9udC1zaXplOjEzcHgiPllvdXIgYXBwPC90ZXh0Pgo8dGV4dCB4PSI5MCIgeT0iMTQ1IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogI2M5Y2ZkOCI+TW9uZ29EQiBkcml2ZXI8L3RleHQ+Cjx0ZXh0IHg9IjkwIiB5PSIxNjIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2MDAgMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzkwZGVjNiI+dW5jaGFuZ2VkPC90ZXh0Pgo8dGV4dCB4PSIyMDAiIHk9IjgyIiBzdHlsZT0iZm9udDogNzAwIDEwcHggSW50ZXIsIHNhbnMtc2VyaWY7IGxldHRlci1zcGFjaW5nOiAxLjNweDsgZmlsbDogIzk0YTNiODsgZmlsbDogIzkwZGVjOCI+REFUQUJBU0UgUkVRVUVTVFMgwrcgRElSRUNUIENPTk5FQ1RJT048L3RleHQ+CjxsaW5lIHgxPSIxNTQiIHkxPSIxMDgiIHgyPSI2MTAiIHkyPSIxMDgiIHN0cm9rZT0iIzA1OTY2OSIgc3Ryb2tlLXdpZHRoPSIyLjIiIG1hcmtlci1lbmQ9InVybCgjYWhkLW1vbmdvZGItYXRsYXMpIi8+Cjx0ZXh0IHg9IjM4MiIgeT0iMTAwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTBweCAnU0YgTW9ubycsIHVpLW1vbm9zcGFjZSwgJ0pldEJyYWlucyBNb25vJywgTWVubG8sIG1vbm9zcGFjZTsgZmlsbDogI2M5Y2ZkODsgZmlsbDogIzkwZGVjOCI+TW9uZ29EQiB3aXJlIHByb3RvY29sPC90ZXh0Pgo8cmVjdCB4PSI2MTQiIHk9Ijc2IiB3aWR0aD0iMTk2IiBoZWlnaHQ9IjY0IiByeD0iMTIiIGZpbGw9IiMyNjI2MjYiIHN0cm9rZT0iIzNkNGU2NiIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KPHRleHQgeD0iNzEyIiB5PSIxMDMiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2NTAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZWQ4OyBmb250LXNpemU6MTJweCI+TW9uZ29EQiBBdGxhczwvdGV4dD4KPHRleHQgeD0iNzEyIiB5PSIxMjIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZmQ4Ij5Nb25nb0RCIGVuZ2luZTwvdGV4dD4KPHRleHQgeD0iMjAwIiB5PSIxNTgiIHN0eWxlPSJmb250OiA3MDAgMTBweCBJbnRlciwgc2Fucy1zZXJpZjsgbGV0dGVyLXNwYWNpbmc6IDEuM3B4OyBmaWxsOiAjOTRhM2I4Ij5NQU5BR0VNRU5UIFJFUVVFU1RTIMK3IFZJQSBURU5TT1I5PC90ZXh0Pgo8bGluZSB4MT0iMTU0IiB5MT0iMTk2IiB4Mj0iMzAwIiB5Mj0iMTk2IiBzdHJva2U9IiM0MTRlNjIiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNhaGQtbW9uZ29kYi1hdGxhcykiLz4KPHRleHQgeD0iMjI3IiB5PSIxODgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMHB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjYzljZmQ4Ij5Eb2N1bWVudERCIEFQSTwvdGV4dD4KPHJlY3QgeD0iMzA0IiB5PSIxNjQiIHdpZHRoPSIxODAiIGhlaWdodD0iNjYiIHJ4PSIxMiIgZmlsbD0iIzFhMzEyNiIgc3Ryb2tlPSIjMDU5NjY5IiBzdHJva2Utd2lkdGg9IjEuNyIvPgo8dGV4dCB4PSIzOTQiIHk9IjE5MSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDcwMCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM5MGRlYzg7IGZvbnQtc2l6ZToxMnB4Ij5UZW5zb3I5PC90ZXh0PgogIDx0ZXh0IHg9IjM5NCIgeT0iMjA4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTAuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjOTBkZWM4Ij5zZXJ2aWNlIGFkYXB0ZXI8L3RleHQ+CjxsaW5lIHgxPSI0ODQiIHkxPSIxOTYiIHgyPSI2MTAiIHkyPSIxOTYiIHN0cm9rZT0iIzQxNGU2MiIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2FoZC1tb25nb2RiLWF0bGFzKSIvPgo8cmVjdCB4PSI2MTQiIHk9IjE2NCIgd2lkdGg9IjE5NiIgaGVpZ2h0PSI2NCIgcng9IjEyIiBmaWxsPSIjMjYyNjI2IiBzdHJva2U9IiMzZDRlNjYiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjcxMiIgeT0iMTkxIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNjUwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogI2M5Y2VkODsgZm9udC1zaXplOjExLjVweCI+QXRsYXMgQWRtaW4gQVBJPC90ZXh0Pgo8dGV4dCB4PSI3MTIiIHk9IjIxMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNjOWNmZDgiPnRoZSB0YXJnZXQncyBtYW5hZ2VtZW50IEFQSTwvdGV4dD4KPC9zdmc+" alt="Database requests (MongoDB wire protocol) connect directly to MongoDB Atlas. The Tensor9 service adapter translates DocumentDB API management calls to Atlas Admin API." />
</div>

<p className="t9-caption">Queries reach the database directly; only the management calls are translated.</p>

#### Database connections

MongoDB Atlas runs MongoDB. It supports multi-document transactions, change streams, correlated lookups, and collation; their behavior and limits follow the selected MongoDB version and Atlas tier. Your driver connects directly to Atlas, where your queries and indexes run.

Each target implements a different set of MongoDB features. The comparison table on this page covers transactions, change streams, lookups, text and vector search, and other features your application may use.

#### Database management

At runtime your application and operational tooling keep making the same DocumentDB calls they make today: describe the cluster, take a snapshot, restore to a point in time, add replica instances, pause and resume, change the tier or a parameter. The adapter accepts DocumentDB requests, returns DocumentDB response formats, and performs supported operations through the Atlas Admin API: snapshots and continuous-backup point-in-time restore, replica node layout, cluster pause / resume, and tier and storage changes. DocumentDB's global-cluster calls map to replica placement across Atlas regions. Atlas also offers geographic sharding, which partitions data by location and is a separate deployment choice.

When your product is deployed into the customer environment, Tensor9 compiles the cluster your stack already declares into the equivalent MongoDB Atlas resources and sets the connection string and credentials into your application's configuration. The control-plane adapter then covers the management calls your running system makes.

<div className="t9-diagram-scroll" role="region" aria-label="Scrollable diagram" tabIndex={0}>
  <img className="t9-diagram-light" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMTk2IiB2aWV3Qm94PSIwIDAgODM2IDE5NiIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJUaGUgVGVuc29yOSBzZXJ2aWNlIGFkYXB0ZXIgaGFuZGxlcyBEb2N1bWVudERCIG1hbmFnZW1lbnQgcmVxdWVzdHMgdXNpbmcgQXRsYXMgQWRtaW4gQVBJIGFuZCByZXR1cm5zIERvY3VtZW50REIgcmVzcG9uc2VzLiI+PHN0eWxlPnRleHR7Zm9udC1mYW1pbHk6SW50ZXIsLWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsJ1NlZ29lIFVJJyxSb2JvdG8sJ0hlbHZldGljYSBOZXVlJyxBcmlhbCxzYW5zLXNlcmlmO2ZpbGw6IzMzNDE1NX08L3N0eWxlPgo8ZGVmcz48bWFya2VyIGlkPSJhaGMtZG9jdW1lbnRkYi1hdGxhcy1hZG1pbi1hcGkiIHZpZXdCb3g9IjAgMCAxMCAxMCIgcmVmWD0iOCIgcmVmWT0iNSIgbWFya2VyV2lkdGg9IjciIG1hcmtlckhlaWdodD0iNyIgb3JpZW50PSJhdXRvLXN0YXJ0LXJldmVyc2UiPjxwYXRoIGQ9Ik0wLDAgTDEwLDUgTDAsMTAgeiIgZmlsbD0iIzk0YTNiOCIvPjwvbWFya2VyPjwvZGVmcz4KPHJlY3QgeD0iMTYiIHk9IjM0IiB3aWR0aD0iMjM2IiBoZWlnaHQ9IjEyOCIgcng9IjEyIiBmaWxsPSIjZmZmIiBzdHJva2U9IiNlMmU4ZjAiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjEzNCIgeT0iNjAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2NTAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMGYxNzJhOyBmb250LXNpemU6MTIuNXB4Ij5Eb2N1bWVudERCIG1hbmFnZW1lbnQgY2FsbDwvdGV4dD4KPHRleHQgeD0iMTM0IiB5PSI4MiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM2NDc0OGIiPnNuYXBzaG90IMK3IHBvaW50LWluLXRpbWUgcmVzdG9yZTwvdGV4dD4KPHRleHQgeD0iMTM0IiB5PSI5OSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM2NDc0OGIiPnJlcGxpY2EgwrcgZmFpbG92ZXIgwrcgZ2xvYmFsIGNsdXN0ZXI8L3RleHQ+Cjx0ZXh0IHg9IjEzNCIgeT0iMTE2IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzY0NzQ4YiI+c3RvcCAvIHN0YXJ0IMK3IHBhcmFtZXRlcnM8L3RleHQ+Cjx0ZXh0IHg9IjEzNCIgeT0iMTQyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTBweCAnU0YgTW9ubycsIHVpLW1vbm9zcGFjZSwgJ0pldEJyYWlucyBNb25vJywgTWVubG8sIG1vbm9zcGFjZTsgZmlsbDogIzY0NzQ4YiI+c2FtZSByZXF1ZXN0IC8gcmVzcG9uc2Ugc2hhcGVzPC90ZXh0Pgo8bGluZSB4MT0iMjUyIiB5MT0iNzQiIHgyPSIzMTQiIHkyPSI3NCIgc3Ryb2tlPSIjOTRhM2I4IiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgjYWhjLWRvY3VtZW50ZGItYXRsYXMtYWRtaW4tYXBpKSIvPgo8bGluZSB4MT0iMzE4IiB5MT0iMTI4IiB4Mj0iMjU2IiB5Mj0iMTI4IiBzdHJva2U9IiM5NGEzYjgiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNhaGMtZG9jdW1lbnRkYi1hdGxhcy1hZG1pbi1hcGkpIi8+CjxyZWN0IHg9IjMxOCIgeT0iNTQiIHdpZHRoPSIyMDQiIGhlaWdodD0iODgiIHJ4PSIxMiIgZmlsbD0iI2VjZmRmNSIgc3Ryb2tlPSIjMDU5NjY5IiBzdHJva2Utd2lkdGg9IjEuNyIvPgo8dGV4dCB4PSI0MjAiIHk9Ijk0IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNzAwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzA0Nzg1NzsgZm9udC1zaXplOjEycHgiPlRlbnNvcjk8L3RleHQ+CiAgPHRleHQgeD0iNDIwIiB5PSIxMTIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMC41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICMwNDc4NTciPnNlcnZpY2UgYWRhcHRlcjwvdGV4dD4KPGxpbmUgeDE9IjUyMiIgeTE9Ijc0IiB4Mj0iNTg0IiB5Mj0iNzQiIHN0cm9rZT0iIzk0YTNiOCIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2FoYy1kb2N1bWVudGRiLWF0bGFzLWFkbWluLWFwaSkiLz4KPGxpbmUgeDE9IjU4OCIgeTE9IjEyOCIgeDI9IjUyNiIgeTI9IjEyOCIgc3Ryb2tlPSIjOTRhM2I4IiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgjYWhjLWRvY3VtZW50ZGItYXRsYXMtYWRtaW4tYXBpKSIvPgo8cmVjdCB4PSI1ODgiIHk9IjM0IiB3aWR0aD0iMjMyIiBoZWlnaHQ9IjEyOCIgcng9IjEyIiBmaWxsPSIjZmZmIiBzdHJva2U9IiNlMmU4ZjAiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjcwNCIgeT0iNjIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2NTAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMGYxNzJhOyBmb250LXNpemU6MTJweCI+QXRsYXMgQWRtaW4gQVBJPC90ZXh0Pgo8dGV4dCB4PSI3MDQiIHk9Ijk0IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzY0NzQ4YiI+YmFja3VwcyDCtyBub2RlIGxheW91dCDCtyBwYXVzZTwvdGV4dD4KPHRleHQgeD0iNzA0IiB5PSIxMTEiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjNjQ3NDhiIj5tdWx0aS1yZWdpb24gY2x1c3RlcnM8L3RleHQ+Cjwvc3ZnPg==" alt="The Tensor9 service adapter handles DocumentDB management requests using Atlas Admin API and returns DocumentDB responses." />

  <img className="t9-diagram-dark" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMTk2IiB2aWV3Qm94PSIwIDAgODM2IDE5NiIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJUaGUgVGVuc29yOSBzZXJ2aWNlIGFkYXB0ZXIgaGFuZGxlcyBEb2N1bWVudERCIG1hbmFnZW1lbnQgcmVxdWVzdHMgdXNpbmcgQXRsYXMgQWRtaW4gQVBJIGFuZCByZXR1cm5zIERvY3VtZW50REIgcmVzcG9uc2VzLiI+PHN0eWxlPnRleHR7Zm9udC1mYW1pbHk6SW50ZXIsLWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsJ1NlZ29lIFVJJyxSb2JvdG8sJ0hlbHZldGljYSBOZXVlJyxBcmlhbCxzYW5zLXNlcmlmO2ZpbGw6I2NiZDVlMX08L3N0eWxlPgo8ZGVmcz48bWFya2VyIGlkPSJhaGMtZG9jdW1lbnRkYi1hdGxhcy1hZG1pbi1hcGkiIHZpZXdCb3g9IjAgMCAxMCAxMCIgcmVmWD0iOCIgcmVmWT0iNSIgbWFya2VyV2lkdGg9IjciIG1hcmtlckhlaWdodD0iNyIgb3JpZW50PSJhdXRvLXN0YXJ0LXJldmVyc2UiPjxwYXRoIGQ9Ik0wLDAgTDEwLDUgTDAsMTAgeiIgZmlsbD0iIzk0YTNiOCIvPjwvbWFya2VyPjwvZGVmcz4KPHJlY3QgeD0iMTYiIHk9IjM0IiB3aWR0aD0iMjM2IiBoZWlnaHQ9IjEyOCIgcng9IjEyIiBmaWxsPSIjMjYyNjI2IiBzdHJva2U9IiMzZDRlNjYiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjEzNCIgeT0iNjAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2NTAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZWQ4OyBmb250LXNpemU6MTIuNXB4Ij5Eb2N1bWVudERCIG1hbmFnZW1lbnQgY2FsbDwvdGV4dD4KPHRleHQgeD0iMTM0IiB5PSI4MiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNjOWNmZDgiPnNuYXBzaG90IMK3IHBvaW50LWluLXRpbWUgcmVzdG9yZTwvdGV4dD4KPHRleHQgeD0iMTM0IiB5PSI5OSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNjOWNmZDgiPnJlcGxpY2EgwrcgZmFpbG92ZXIgwrcgZ2xvYmFsIGNsdXN0ZXI8L3RleHQ+Cjx0ZXh0IHg9IjEzNCIgeT0iMTE2IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogI2M5Y2ZkOCI+c3RvcCAvIHN0YXJ0IMK3IHBhcmFtZXRlcnM8L3RleHQ+Cjx0ZXh0IHg9IjEzNCIgeT0iMTQyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTBweCAnU0YgTW9ubycsIHVpLW1vbm9zcGFjZSwgJ0pldEJyYWlucyBNb25vJywgTWVubG8sIG1vbm9zcGFjZTsgZmlsbDogI2M5Y2ZkOCI+c2FtZSByZXF1ZXN0IC8gcmVzcG9uc2Ugc2hhcGVzPC90ZXh0Pgo8bGluZSB4MT0iMjUyIiB5MT0iNzQiIHgyPSIzMTQiIHkyPSI3NCIgc3Ryb2tlPSIjNDE0ZTYyIiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgjYWhjLWRvY3VtZW50ZGItYXRsYXMtYWRtaW4tYXBpKSIvPgo8bGluZSB4MT0iMzE4IiB5MT0iMTI4IiB4Mj0iMjU2IiB5Mj0iMTI4IiBzdHJva2U9IiM0MTRlNjIiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNhaGMtZG9jdW1lbnRkYi1hdGxhcy1hZG1pbi1hcGkpIi8+CjxyZWN0IHg9IjMxOCIgeT0iNTQiIHdpZHRoPSIyMDQiIGhlaWdodD0iODgiIHJ4PSIxMiIgZmlsbD0iIzFhMzEyNiIgc3Ryb2tlPSIjMDU5NjY5IiBzdHJva2Utd2lkdGg9IjEuNyIvPgo8dGV4dCB4PSI0MjAiIHk9Ijk0IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNzAwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzkwZGVjODsgZm9udC1zaXplOjEycHgiPlRlbnNvcjk8L3RleHQ+CiAgPHRleHQgeD0iNDIwIiB5PSIxMTIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMC41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM5MGRlYzgiPnNlcnZpY2UgYWRhcHRlcjwvdGV4dD4KPGxpbmUgeDE9IjUyMiIgeTE9Ijc0IiB4Mj0iNTg0IiB5Mj0iNzQiIHN0cm9rZT0iIzQxNGU2MiIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2FoYy1kb2N1bWVudGRiLWF0bGFzLWFkbWluLWFwaSkiLz4KPGxpbmUgeDE9IjU4OCIgeTE9IjEyOCIgeDI9IjUyNiIgeTI9IjEyOCIgc3Ryb2tlPSIjNDE0ZTYyIiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgjYWhjLWRvY3VtZW50ZGItYXRsYXMtYWRtaW4tYXBpKSIvPgo8cmVjdCB4PSI1ODgiIHk9IjM0IiB3aWR0aD0iMjMyIiBoZWlnaHQ9IjEyOCIgcng9IjEyIiBmaWxsPSIjMjYyNjI2IiBzdHJva2U9IiMzZDRlNjYiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjcwNCIgeT0iNjIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2NTAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZWQ4OyBmb250LXNpemU6MTJweCI+QXRsYXMgQWRtaW4gQVBJPC90ZXh0Pgo8dGV4dCB4PSI3MDQiIHk9Ijk0IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogI2M5Y2ZkOCI+YmFja3VwcyDCtyBub2RlIGxheW91dCDCtyBwYXVzZTwvdGV4dD4KPHRleHQgeD0iNzA0IiB5PSIxMTEiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZmQ4Ij5tdWx0aS1yZWdpb24gY2x1c3RlcnM8L3RleHQ+Cjwvc3ZnPg==" alt="The Tensor9 service adapter handles DocumentDB management requests using Atlas Admin API and returns DocumentDB responses." />
</div>

<p className="t9-caption">Tensor9 translates DocumentDB management requests to the target API and returns DocumentDB responses.</p>

#### Limitations

△ Where DocumentDB and MongoDB Atlas stay different

* **Manual failover tests recovery.** Atlas elects a new primary automatically; the manual failover call maps to Atlas's test-failover, useful for verifying resilience rather than day-to-day operations.
* **Event subscriptions are not served.** DocumentDB event notifications publish to SNS; Atlas alerts are a different model with no direct counterpart.
* **DocumentDB-proprietary settings have no counterpart.** Standard cluster parameters translate to Atlas cluster configuration; parameters specific to DocumentDB are not supported on the target.

#### Other considerations

**Migration.** Copy existing data with MongoDB migration tools that the target supports. Check the workload's queries, indexes, and BSON types against the comparison table before switching connections; sharing a wire protocol does not make every MongoDB feature equivalent.

**Operations.** The customer owns the Atlas organization: cluster tiers, cloud and region choices, and pricing are MongoDB's.

**Features and capacity.** The comparison table on this page lists database features and high-availability differences. Check the target service's pricing and capacity limits when sizing the deployment.

## On Google Cloud

### Via Firestore (MongoDB compatibility)

| Operation                                        | Area                    | Support      | Depth        | Notes                                                                                                                |
| ------------------------------------------------ | ----------------------- | ------------ | ------------ | -------------------------------------------------------------------------------------------------------------------- |
| collStats                                        | Admin & diagnostics     | Supported    | Full surface | -                                                                                                                    |
| dbStats                                          | Admin & diagnostics     | Supported    | Full surface | -                                                                                                                    |
| explain                                          | Admin & diagnostics     | Supported    | Full surface | query plan                                                                                                           |
| hello                                            | Admin & diagnostics     | Supported    | Full surface | topology handshake                                                                                                   |
| isMaster                                         | Admin & diagnostics     | Supported    | Full surface | legacy topology handshake                                                                                            |
| ping                                             | Admin & diagnostics     | Supported    | Full surface | -                                                                                                                    |
| serverStatus                                     | Admin & diagnostics     | Supported    | Full surface | -                                                                                                                    |
| delete                                           | CRUD                    | Supported    | Common       | -                                                                                                                    |
| find                                             | CRUD                    | Supported    | Common       | -                                                                                                                    |
| findAndModify                                    | CRUD                    | Supported    | Common       | atomic read-modify-write                                                                                             |
| getMore                                          | CRUD                    | Supported    | Common       | cursor iteration                                                                                                     |
| insert                                           | CRUD                    | Supported    | Common       | -                                                                                                                    |
| killCursors                                      | CRUD                    | Supported    | Most usage   | -                                                                                                                    |
| update                                           | CRUD                    | Supported    | Common       | -                                                                                                                    |
| Change streams (\$changeStream / watch)          | Change streams          | Partial      | Most usage   | in preview                                                                                                           |
| create                                           | Collections & databases | Supported    | Most usage   | -                                                                                                                    |
| drop                                             | Collections & databases | Supported    | Most usage   | -                                                                                                                    |
| dropDatabase                                     | Collections & databases | Supported    | Full surface | -                                                                                                                    |
| listCollections                                  | Collections & databases | Supported    | Most usage   | -                                                                                                                    |
| listDatabases                                    | Collections & databases | Supported    | Most usage   | -                                                                                                                    |
| createIndexes                                    | Indexes                 | Supported    | Most usage   | -                                                                                                                    |
| dropIndexes                                      | Indexes                 | Supported    | Most usage   | -                                                                                                                    |
| listIndexes                                      | Indexes                 | Supported    | Most usage   | -                                                                                                                    |
| aggregate                                        | Query & aggregation     | Partial      | Common       | supports \$lookup + text search; omits \$graphLookup and a large set of stages / accumulators / geospatial operators |
| count                                            | Query & aggregation     | Supported    | Common       | -                                                                                                                    |
| distinct                                         | Query & aggregation     | Partial      | Most usage   | -                                                                                                                    |
| mapReduce                                        | Query & aggregation     | Out of scope | Full surface | not supported                                                                                                        |
| Transactions (startTransaction / commit / abort) | Transactions            | Supported    | Most usage   | -                                                                                                                    |

#### How it works

Your application's MongoDB driver connects directly to Firestore with MongoDB compatibility. These database requests are the **data plane**. The driver and MongoDB wire protocol stay unchanged, and Tensor9 does not proxy or translate these database requests.

Management requests, such as snapshots, restore, replicas, failover, and configuration changes, form the **control plane**. Tensor9 serves the DocumentDB API in the customer's appliance and translates those requests to the target's management API. The sections below describe which operations have equivalents and which return errors.

<div className="t9-diagram-scroll" role="region" aria-label="Scrollable diagram" tabIndex={0}>
  <img className="t9-diagram-light" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMjUyIiB2aWV3Qm94PSIwIDAgODM2IDI1MiIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJEYXRhYmFzZSByZXF1ZXN0cyAoTW9uZ29EQiB3aXJlIHByb3RvY29sKSBjb25uZWN0IGRpcmVjdGx5IHRvIEZpcmVzdG9yZSAoTW9uZ28gY29tcGF0KS4gVGhlIFRlbnNvcjkgc2VydmljZSBhZGFwdGVyIHRyYW5zbGF0ZXMgRG9jdW1lbnREQiBBUEkgbWFuYWdlbWVudCBjYWxscyB0byBGaXJlc3RvcmUgQVBJLiI+PHN0eWxlPnRleHR7Zm9udC1mYW1pbHk6SW50ZXIsLWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsJ1NlZ29lIFVJJyxSb2JvdG8sJ0hlbHZldGljYSBOZXVlJyxBcmlhbCxzYW5zLXNlcmlmO2ZpbGw6IzMzNDE1NX08L3N0eWxlPgo8ZGVmcz48bWFya2VyIGlkPSJhaGQtZmlyZXN0b3JlLW1vbmdvLWNvbXBhdCIgdmlld0JveD0iMCAwIDEwIDEwIiByZWZYPSI4IiByZWZZPSI1IiBtYXJrZXJXaWR0aD0iNyIgbWFya2VySGVpZ2h0PSI3IiBvcmllbnQ9ImF1dG8tc3RhcnQtcmV2ZXJzZSI+PHBhdGggZD0iTTAsMCBMMTAsNSBMMCwxMCB6IiBmaWxsPSIjOTRhM2I4Ii8+PC9tYXJrZXI+PC9kZWZzPgo8cmVjdCB4PSI4IiB5PSIzNCIgd2lkdGg9IjgyMCIgaGVpZ2h0PSIyMDYiIHJ4PSIxNiIgZmlsbD0iI2Y4ZmFmYyIgc3Ryb2tlPSIjY2JkNWUxIiBzdHJva2Utd2lkdGg9IjEuNCIgc3Ryb2tlLWRhc2hhcnJheT0iNSA1Ii8+Cjx0ZXh0IHg9IjI2IiB5PSI1NCIgc3R5bGU9ImZvbnQ6IDcwMCAxMHB4IEludGVyLCBzYW5zLXNlcmlmOyBsZXR0ZXItc3BhY2luZzogMS4zcHg7IGZpbGw6ICM5NGEzYjg7IGZpbGw6IzA0Nzg1NyI+T04gR09PR0xFIENMT1VEPC90ZXh0Pgo8cmVjdCB4PSIyNiIgeT0iODgiIHdpZHRoPSIxMjgiIGhlaWdodD0iMTEyIiByeD0iMTIiIGZpbGw9IiNmZmYiIHN0cm9rZT0iI2UyZThmMCIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KPHRleHQgeD0iOTAiIHk9IjEyNiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDY1MCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICMwZjE3MmE7IGZvbnQtc2l6ZToxM3B4Ij5Zb3VyIGFwcDwvdGV4dD4KPHRleHQgeD0iOTAiIHk9IjE0NSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM2NDc0OGIiPk1vbmdvREIgZHJpdmVyPC90ZXh0Pgo8dGV4dCB4PSI5MCIgeT0iMTYyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNjAwIDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICMwNTk2NjkiPnVuY2hhbmdlZDwvdGV4dD4KPHRleHQgeD0iMjAwIiB5PSI4MiIgc3R5bGU9ImZvbnQ6IDcwMCAxMHB4IEludGVyLCBzYW5zLXNlcmlmOyBsZXR0ZXItc3BhY2luZzogMS4zcHg7IGZpbGw6ICM5NGEzYjg7IGZpbGw6IzA0Nzg1NyI+REFUQUJBU0UgUkVRVUVTVFMgwrcgRElSRUNUIENPTk5FQ1RJT048L3RleHQ+CjxsaW5lIHgxPSIxNTQiIHkxPSIxMDgiIHgyPSI2MTAiIHkyPSIxMDgiIHN0cm9rZT0iIzA1OTY2OSIgc3Ryb2tlLXdpZHRoPSIyLjIiIG1hcmtlci1lbmQ9InVybCgjYWhkLWZpcmVzdG9yZS1tb25nby1jb21wYXQpIi8+Cjx0ZXh0IHg9IjM4MiIgeT0iMTAwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTBweCAnU0YgTW9ubycsIHVpLW1vbm9zcGFjZSwgJ0pldEJyYWlucyBNb25vJywgTWVubG8sIG1vbm9zcGFjZTsgZmlsbDogIzY0NzQ4YjsgZmlsbDojMDQ3ODU3Ij5Nb25nb0RCIHdpcmUgcHJvdG9jb2w8L3RleHQ+CjxyZWN0IHg9IjYxNCIgeT0iNzYiIHdpZHRoPSIxOTYiIGhlaWdodD0iNjQiIHJ4PSIxMiIgZmlsbD0iI2ZmZiIgc3Ryb2tlPSIjZTJlOGYwIiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8dGV4dCB4PSI3MTIiIHk9IjEwMyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDY1MCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICMwZjE3MmE7IGZvbnQtc2l6ZToxMnB4Ij5GaXJlc3RvcmUgKE1vbmdvIGNvbXBhdCk8L3RleHQ+Cjx0ZXh0IHg9IjcxMiIgeT0iMTIyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzY0NzQ4YiI+c2VydmVybGVzcyDCtyBNb25nb0RCIDcuMCB3aXJlPC90ZXh0Pgo8dGV4dCB4PSIyMDAiIHk9IjE1OCIgc3R5bGU9ImZvbnQ6IDcwMCAxMHB4IEludGVyLCBzYW5zLXNlcmlmOyBsZXR0ZXItc3BhY2luZzogMS4zcHg7IGZpbGw6ICM5NGEzYjgiPk1BTkFHRU1FTlQgUkVRVUVTVFMgwrcgVklBIFRFTlNPUjk8L3RleHQ+CjxsaW5lIHgxPSIxNTQiIHkxPSIxOTYiIHgyPSIzMDAiIHkyPSIxOTYiIHN0cm9rZT0iIzk0YTNiOCIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2FoZC1maXJlc3RvcmUtbW9uZ28tY29tcGF0KSIvPgo8dGV4dCB4PSIyMjciIHk9IjE4OCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwcHggJ1NGIE1vbm8nLCB1aS1tb25vc3BhY2UsICdKZXRCcmFpbnMgTW9ubycsIE1lbmxvLCBtb25vc3BhY2U7IGZpbGw6ICM2NDc0OGIiPkRvY3VtZW50REIgQVBJPC90ZXh0Pgo8cmVjdCB4PSIzMDQiIHk9IjE2NCIgd2lkdGg9IjE4MCIgaGVpZ2h0PSI2NiIgcng9IjEyIiBmaWxsPSIjZWNmZGY1IiBzdHJva2U9IiMwNTk2NjkiIHN0cm9rZS13aWR0aD0iMS43Ii8+Cjx0ZXh0IHg9IjM5NCIgeT0iMTkxIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNzAwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzA0Nzg1NzsgZm9udC1zaXplOjEycHgiPlRlbnNvcjk8L3RleHQ+CiAgPHRleHQgeD0iMzk0IiB5PSIyMDgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMC41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICMwNDc4NTciPnNlcnZpY2UgYWRhcHRlcjwvdGV4dD4KPGxpbmUgeDE9IjQ4NCIgeTE9IjE5NiIgeDI9IjYxMCIgeTI9IjE5NiIgc3Ryb2tlPSIjOTRhM2I4IiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgjYWhkLWZpcmVzdG9yZS1tb25nby1jb21wYXQpIi8+CjxyZWN0IHg9IjYxNCIgeT0iMTY0IiB3aWR0aD0iMTk2IiBoZWlnaHQ9IjY0IiByeD0iMTIiIGZpbGw9IiNmZmYiIHN0cm9rZT0iI2UyZThmMCIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KPHRleHQgeD0iNzEyIiB5PSIxOTEiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2NTAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMGYxNzJhOyBmb250LXNpemU6MTEuNXB4Ij5GaXJlc3RvcmUgQVBJPC90ZXh0Pgo8dGV4dCB4PSI3MTIiIHk9IjIxMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM2NDc0OGIiPnRoZSB0YXJnZXQncyBtYW5hZ2VtZW50IEFQSTwvdGV4dD4KPC9zdmc+" alt="Database requests (MongoDB wire protocol) connect directly to Firestore (Mongo compat). The Tensor9 service adapter translates DocumentDB API management calls to Firestore API." />

  <img className="t9-diagram-dark" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMjUyIiB2aWV3Qm94PSIwIDAgODM2IDI1MiIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJEYXRhYmFzZSByZXF1ZXN0cyAoTW9uZ29EQiB3aXJlIHByb3RvY29sKSBjb25uZWN0IGRpcmVjdGx5IHRvIEZpcmVzdG9yZSAoTW9uZ28gY29tcGF0KS4gVGhlIFRlbnNvcjkgc2VydmljZSBhZGFwdGVyIHRyYW5zbGF0ZXMgRG9jdW1lbnREQiBBUEkgbWFuYWdlbWVudCBjYWxscyB0byBGaXJlc3RvcmUgQVBJLiI+PHN0eWxlPnRleHR7Zm9udC1mYW1pbHk6SW50ZXIsLWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsJ1NlZ29lIFVJJyxSb2JvdG8sJ0hlbHZldGljYSBOZXVlJyxBcmlhbCxzYW5zLXNlcmlmO2ZpbGw6I2NiZDVlMX08L3N0eWxlPgo8ZGVmcz48bWFya2VyIGlkPSJhaGQtZmlyZXN0b3JlLW1vbmdvLWNvbXBhdCIgdmlld0JveD0iMCAwIDEwIDEwIiByZWZYPSI4IiByZWZZPSI1IiBtYXJrZXJXaWR0aD0iNyIgbWFya2VySGVpZ2h0PSI3IiBvcmllbnQ9ImF1dG8tc3RhcnQtcmV2ZXJzZSI+PHBhdGggZD0iTTAsMCBMMTAsNSBMMCwxMCB6IiBmaWxsPSIjOTRhM2I4Ii8+PC9tYXJrZXI+PC9kZWZzPgo8cmVjdCB4PSI4IiB5PSIzNCIgd2lkdGg9IjgyMCIgaGVpZ2h0PSIyMDYiIHJ4PSIxNiIgZmlsbD0iIzFhMjYzMSIgc3Ryb2tlPSIjM2Q0ZjY2IiBzdHJva2Utd2lkdGg9IjEuNCIgc3Ryb2tlLWRhc2hhcnJheT0iNSA1Ii8+Cjx0ZXh0IHg9IjI2IiB5PSI1NCIgc3R5bGU9ImZvbnQ6IDcwMCAxMHB4IEludGVyLCBzYW5zLXNlcmlmOyBsZXR0ZXItc3BhY2luZzogMS4zcHg7IGZpbGw6ICM5NGEzYjg7IGZpbGw6ICM5MGRlYzgiPk9OIEdPT0dMRSBDTE9VRDwvdGV4dD4KPHJlY3QgeD0iMjYiIHk9Ijg4IiB3aWR0aD0iMTI4IiBoZWlnaHQ9IjExMiIgcng9IjEyIiBmaWxsPSIjMjYyNjI2IiBzdHJva2U9IiMzZDRlNjYiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjkwIiB5PSIxMjYiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2NTAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZWQ4OyBmb250LXNpemU6MTNweCI+WW91ciBhcHA8L3RleHQ+Cjx0ZXh0IHg9IjkwIiB5PSIxNDUiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZmQ4Ij5Nb25nb0RCIGRyaXZlcjwvdGV4dD4KPHRleHQgeD0iOTAiIHk9IjE2MiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDYwMCAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjOTBkZWM2Ij51bmNoYW5nZWQ8L3RleHQ+Cjx0ZXh0IHg9IjIwMCIgeT0iODIiIHN0eWxlPSJmb250OiA3MDAgMTBweCBJbnRlciwgc2Fucy1zZXJpZjsgbGV0dGVyLXNwYWNpbmc6IDEuM3B4OyBmaWxsOiAjOTRhM2I4OyBmaWxsOiAjOTBkZWM4Ij5EQVRBQkFTRSBSRVFVRVNUUyDCtyBESVJFQ1QgQ09OTkVDVElPTjwvdGV4dD4KPGxpbmUgeDE9IjE1NCIgeTE9IjEwOCIgeDI9IjYxMCIgeTI9IjEwOCIgc3Ryb2tlPSIjMDU5NjY5IiBzdHJva2Utd2lkdGg9IjIuMiIgbWFya2VyLWVuZD0idXJsKCNhaGQtZmlyZXN0b3JlLW1vbmdvLWNvbXBhdCkiLz4KPHRleHQgeD0iMzgyIiB5PSIxMDAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMHB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjYzljZmQ4OyBmaWxsOiAjOTBkZWM4Ij5Nb25nb0RCIHdpcmUgcHJvdG9jb2w8L3RleHQ+CjxyZWN0IHg9IjYxNCIgeT0iNzYiIHdpZHRoPSIxOTYiIGhlaWdodD0iNjQiIHJ4PSIxMiIgZmlsbD0iIzI2MjYyNiIgc3Ryb2tlPSIjM2Q0ZTY2IiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8dGV4dCB4PSI3MTIiIHk9IjEwMyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDY1MCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNjOWNlZDg7IGZvbnQtc2l6ZToxMnB4Ij5GaXJlc3RvcmUgKE1vbmdvIGNvbXBhdCk8L3RleHQ+Cjx0ZXh0IHg9IjcxMiIgeT0iMTIyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogI2M5Y2ZkOCI+c2VydmVybGVzcyDCtyBNb25nb0RCIDcuMCB3aXJlPC90ZXh0Pgo8dGV4dCB4PSIyMDAiIHk9IjE1OCIgc3R5bGU9ImZvbnQ6IDcwMCAxMHB4IEludGVyLCBzYW5zLXNlcmlmOyBsZXR0ZXItc3BhY2luZzogMS4zcHg7IGZpbGw6ICM5NGEzYjgiPk1BTkFHRU1FTlQgUkVRVUVTVFMgwrcgVklBIFRFTlNPUjk8L3RleHQ+CjxsaW5lIHgxPSIxNTQiIHkxPSIxOTYiIHgyPSIzMDAiIHkyPSIxOTYiIHN0cm9rZT0iIzQxNGU2MiIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2FoZC1maXJlc3RvcmUtbW9uZ28tY29tcGF0KSIvPgo8dGV4dCB4PSIyMjciIHk9IjE4OCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwcHggJ1NGIE1vbm8nLCB1aS1tb25vc3BhY2UsICdKZXRCcmFpbnMgTW9ubycsIE1lbmxvLCBtb25vc3BhY2U7IGZpbGw6ICNjOWNmZDgiPkRvY3VtZW50REIgQVBJPC90ZXh0Pgo8cmVjdCB4PSIzMDQiIHk9IjE2NCIgd2lkdGg9IjE4MCIgaGVpZ2h0PSI2NiIgcng9IjEyIiBmaWxsPSIjMWEzMTI2IiBzdHJva2U9IiMwNTk2NjkiIHN0cm9rZS13aWR0aD0iMS43Ii8+Cjx0ZXh0IHg9IjM5NCIgeT0iMTkxIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNzAwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzkwZGVjODsgZm9udC1zaXplOjEycHgiPlRlbnNvcjk8L3RleHQ+CiAgPHRleHQgeD0iMzk0IiB5PSIyMDgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMC41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM5MGRlYzgiPnNlcnZpY2UgYWRhcHRlcjwvdGV4dD4KPGxpbmUgeDE9IjQ4NCIgeTE9IjE5NiIgeDI9IjYxMCIgeTI9IjE5NiIgc3Ryb2tlPSIjNDE0ZTYyIiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgjYWhkLWZpcmVzdG9yZS1tb25nby1jb21wYXQpIi8+CjxyZWN0IHg9IjYxNCIgeT0iMTY0IiB3aWR0aD0iMTk2IiBoZWlnaHQ9IjY0IiByeD0iMTIiIGZpbGw9IiMyNjI2MjYiIHN0cm9rZT0iIzNkNGU2NiIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KPHRleHQgeD0iNzEyIiB5PSIxOTEiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2NTAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZWQ4OyBmb250LXNpemU6MTEuNXB4Ij5GaXJlc3RvcmUgQVBJPC90ZXh0Pgo8dGV4dCB4PSI3MTIiIHk9IjIxMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNjOWNmZDgiPnRoZSB0YXJnZXQncyBtYW5hZ2VtZW50IEFQSTwvdGV4dD4KPC9zdmc+" alt="Database requests (MongoDB wire protocol) connect directly to Firestore (Mongo compat). The Tensor9 service adapter translates DocumentDB API management calls to Firestore API." />
</div>

<p className="t9-caption">Queries reach the database directly; only the management calls are translated.</p>

#### Database connections

Firestore with MongoDB compatibility supports the MongoDB 7.0 wire protocol. It manages instance sizing, read scaling, and multi-region high availability. Its MongoDB compatibility has limits: no vector search or collation, many unsupported aggregation stages, and change streams in preview. Your driver connects directly to Firestore.

Each target implements a different set of MongoDB features. The comparison table on this page covers transactions, change streams, lookups, text and vector search, and other features your application may use.

#### Database management

At runtime your application and operational tooling keep making the same DocumentDB calls they make today. The adapter accepts DocumentDB requests, returns DocumentDB response formats, and performs supported operations through the Firestore API: on-demand backups, point-in-time recovery within Firestore's 7-day window, and database-level settings. Much of the rest has nothing to translate to, because Firestore is serverless: reads scale automatically, failover is automatic, and there is no cluster to stop, start, or size. The limitations below identify those operations. Each returns an error.

When your product is deployed into the customer environment, Tensor9 compiles the cluster your stack already declares into the equivalent Firestore with MongoDB compatibility resources and sets the connection string and credentials into your application's configuration. The control-plane adapter then covers the management calls your running system makes.

<div className="t9-diagram-scroll" role="region" aria-label="Scrollable diagram" tabIndex={0}>
  <img className="t9-diagram-light" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMTk2IiB2aWV3Qm94PSIwIDAgODM2IDE5NiIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJUaGUgVGVuc29yOSBzZXJ2aWNlIGFkYXB0ZXIgaGFuZGxlcyBEb2N1bWVudERCIG1hbmFnZW1lbnQgcmVxdWVzdHMgdXNpbmcgRmlyZXN0b3JlIEFQSSBhbmQgcmV0dXJucyBEb2N1bWVudERCIHJlc3BvbnNlcy4iPjxzdHlsZT50ZXh0e2ZvbnQtZmFtaWx5OkludGVyLC1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LCdTZWdvZSBVSScsUm9ib3RvLCdIZWx2ZXRpY2EgTmV1ZScsQXJpYWwsc2Fucy1zZXJpZjtmaWxsOiMzMzQxNTV9PC9zdHlsZT4KPGRlZnM+PG1hcmtlciBpZD0iYWhjLWRvY3VtZW50ZGItZmlyZXN0b3JlLWFwaSIgdmlld0JveD0iMCAwIDEwIDEwIiByZWZYPSI4IiByZWZZPSI1IiBtYXJrZXJXaWR0aD0iNyIgbWFya2VySGVpZ2h0PSI3IiBvcmllbnQ9ImF1dG8tc3RhcnQtcmV2ZXJzZSI+PHBhdGggZD0iTTAsMCBMMTAsNSBMMCwxMCB6IiBmaWxsPSIjOTRhM2I4Ii8+PC9tYXJrZXI+PC9kZWZzPgo8cmVjdCB4PSIxNiIgeT0iMzQiIHdpZHRoPSIyMzYiIGhlaWdodD0iMTI4IiByeD0iMTIiIGZpbGw9IiNmZmYiIHN0cm9rZT0iI2UyZThmMCIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KPHRleHQgeD0iMTM0IiB5PSI2MCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDY1MCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICMwZjE3MmE7IGZvbnQtc2l6ZToxMi41cHgiPkRvY3VtZW50REIgbWFuYWdlbWVudCBjYWxsPC90ZXh0Pgo8dGV4dCB4PSIxMzQiIHk9IjgyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzY0NzQ4YiI+c25hcHNob3QgwrcgcG9pbnQtaW4tdGltZSByZXN0b3JlPC90ZXh0Pgo8dGV4dCB4PSIxMzQiIHk9Ijk5IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzY0NzQ4YiI+cmVwbGljYSDCtyBmYWlsb3ZlciDCtyBnbG9iYWwgY2x1c3RlcjwvdGV4dD4KPHRleHQgeD0iMTM0IiB5PSIxMTYiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjNjQ3NDhiIj5zdG9wIC8gc3RhcnQgwrcgcGFyYW1ldGVyczwvdGV4dD4KPHRleHQgeD0iMTM0IiB5PSIxNDIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMHB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjNjQ3NDhiIj5zYW1lIHJlcXVlc3QgLyByZXNwb25zZSBzaGFwZXM8L3RleHQ+CjxsaW5lIHgxPSIyNTIiIHkxPSI3NCIgeDI9IjMxNCIgeTI9Ijc0IiBzdHJva2U9IiM5NGEzYjgiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNhaGMtZG9jdW1lbnRkYi1maXJlc3RvcmUtYXBpKSIvPgo8bGluZSB4MT0iMzE4IiB5MT0iMTI4IiB4Mj0iMjU2IiB5Mj0iMTI4IiBzdHJva2U9IiM5NGEzYjgiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNhaGMtZG9jdW1lbnRkYi1maXJlc3RvcmUtYXBpKSIvPgo8cmVjdCB4PSIzMTgiIHk9IjU0IiB3aWR0aD0iMjA0IiBoZWlnaHQ9Ijg4IiByeD0iMTIiIGZpbGw9IiNlY2ZkZjUiIHN0cm9rZT0iIzA1OTY2OSIgc3Ryb2tlLXdpZHRoPSIxLjciLz4KPHRleHQgeD0iNDIwIiB5PSI5NCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDcwMCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICMwNDc4NTc7IGZvbnQtc2l6ZToxMnB4Ij5UZW5zb3I5PC90ZXh0PgogIDx0ZXh0IHg9IjQyMCIgeT0iMTEyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTAuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMDQ3ODU3Ij5zZXJ2aWNlIGFkYXB0ZXI8L3RleHQ+CjxsaW5lIHgxPSI1MjIiIHkxPSI3NCIgeDI9IjU4NCIgeTI9Ijc0IiBzdHJva2U9IiM5NGEzYjgiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNhaGMtZG9jdW1lbnRkYi1maXJlc3RvcmUtYXBpKSIvPgo8bGluZSB4MT0iNTg4IiB5MT0iMTI4IiB4Mj0iNTI2IiB5Mj0iMTI4IiBzdHJva2U9IiM5NGEzYjgiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNhaGMtZG9jdW1lbnRkYi1maXJlc3RvcmUtYXBpKSIvPgo8cmVjdCB4PSI1ODgiIHk9IjM0IiB3aWR0aD0iMjMyIiBoZWlnaHQ9IjEyOCIgcng9IjEyIiBmaWxsPSIjZmZmIiBzdHJva2U9IiNlMmU4ZjAiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjcwNCIgeT0iNjIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2NTAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMGYxNzJhOyBmb250LXNpemU6MTJweCI+RmlyZXN0b3JlIEFQSTwvdGV4dD4KPHRleHQgeD0iNzA0IiB5PSI5NCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM2NDc0OGIiPmJhY2t1cHMgwrcgUElUUjwvdGV4dD4KPHRleHQgeD0iNzA0IiB5PSIxMTEiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjNjQ3NDhiIj5kYXRhYmFzZSBzZXR0aW5nczwvdGV4dD4KPC9zdmc+" alt="The Tensor9 service adapter handles DocumentDB management requests using Firestore API and returns DocumentDB responses." />

  <img className="t9-diagram-dark" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMTk2IiB2aWV3Qm94PSIwIDAgODM2IDE5NiIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJUaGUgVGVuc29yOSBzZXJ2aWNlIGFkYXB0ZXIgaGFuZGxlcyBEb2N1bWVudERCIG1hbmFnZW1lbnQgcmVxdWVzdHMgdXNpbmcgRmlyZXN0b3JlIEFQSSBhbmQgcmV0dXJucyBEb2N1bWVudERCIHJlc3BvbnNlcy4iPjxzdHlsZT50ZXh0e2ZvbnQtZmFtaWx5OkludGVyLC1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LCdTZWdvZSBVSScsUm9ib3RvLCdIZWx2ZXRpY2EgTmV1ZScsQXJpYWwsc2Fucy1zZXJpZjtmaWxsOiNjYmQ1ZTF9PC9zdHlsZT4KPGRlZnM+PG1hcmtlciBpZD0iYWhjLWRvY3VtZW50ZGItZmlyZXN0b3JlLWFwaSIgdmlld0JveD0iMCAwIDEwIDEwIiByZWZYPSI4IiByZWZZPSI1IiBtYXJrZXJXaWR0aD0iNyIgbWFya2VySGVpZ2h0PSI3IiBvcmllbnQ9ImF1dG8tc3RhcnQtcmV2ZXJzZSI+PHBhdGggZD0iTTAsMCBMMTAsNSBMMCwxMCB6IiBmaWxsPSIjOTRhM2I4Ii8+PC9tYXJrZXI+PC9kZWZzPgo8cmVjdCB4PSIxNiIgeT0iMzQiIHdpZHRoPSIyMzYiIGhlaWdodD0iMTI4IiByeD0iMTIiIGZpbGw9IiMyNjI2MjYiIHN0cm9rZT0iIzNkNGU2NiIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KPHRleHQgeD0iMTM0IiB5PSI2MCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDY1MCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNjOWNlZDg7IGZvbnQtc2l6ZToxMi41cHgiPkRvY3VtZW50REIgbWFuYWdlbWVudCBjYWxsPC90ZXh0Pgo8dGV4dCB4PSIxMzQiIHk9IjgyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogI2M5Y2ZkOCI+c25hcHNob3QgwrcgcG9pbnQtaW4tdGltZSByZXN0b3JlPC90ZXh0Pgo8dGV4dCB4PSIxMzQiIHk9Ijk5IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogI2M5Y2ZkOCI+cmVwbGljYSDCtyBmYWlsb3ZlciDCtyBnbG9iYWwgY2x1c3RlcjwvdGV4dD4KPHRleHQgeD0iMTM0IiB5PSIxMTYiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZmQ4Ij5zdG9wIC8gc3RhcnQgwrcgcGFyYW1ldGVyczwvdGV4dD4KPHRleHQgeD0iMTM0IiB5PSIxNDIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMHB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjYzljZmQ4Ij5zYW1lIHJlcXVlc3QgLyByZXNwb25zZSBzaGFwZXM8L3RleHQ+CjxsaW5lIHgxPSIyNTIiIHkxPSI3NCIgeDI9IjMxNCIgeTI9Ijc0IiBzdHJva2U9IiM0MTRlNjIiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNhaGMtZG9jdW1lbnRkYi1maXJlc3RvcmUtYXBpKSIvPgo8bGluZSB4MT0iMzE4IiB5MT0iMTI4IiB4Mj0iMjU2IiB5Mj0iMTI4IiBzdHJva2U9IiM0MTRlNjIiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNhaGMtZG9jdW1lbnRkYi1maXJlc3RvcmUtYXBpKSIvPgo8cmVjdCB4PSIzMTgiIHk9IjU0IiB3aWR0aD0iMjA0IiBoZWlnaHQ9Ijg4IiByeD0iMTIiIGZpbGw9IiMxYTMxMjYiIHN0cm9rZT0iIzA1OTY2OSIgc3Ryb2tlLXdpZHRoPSIxLjciLz4KPHRleHQgeD0iNDIwIiB5PSI5NCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDcwMCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM5MGRlYzg7IGZvbnQtc2l6ZToxMnB4Ij5UZW5zb3I5PC90ZXh0PgogIDx0ZXh0IHg9IjQyMCIgeT0iMTEyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTAuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjOTBkZWM4Ij5zZXJ2aWNlIGFkYXB0ZXI8L3RleHQ+CjxsaW5lIHgxPSI1MjIiIHkxPSI3NCIgeDI9IjU4NCIgeTI9Ijc0IiBzdHJva2U9IiM0MTRlNjIiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNhaGMtZG9jdW1lbnRkYi1maXJlc3RvcmUtYXBpKSIvPgo8bGluZSB4MT0iNTg4IiB5MT0iMTI4IiB4Mj0iNTI2IiB5Mj0iMTI4IiBzdHJva2U9IiM0MTRlNjIiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNhaGMtZG9jdW1lbnRkYi1maXJlc3RvcmUtYXBpKSIvPgo8cmVjdCB4PSI1ODgiIHk9IjM0IiB3aWR0aD0iMjMyIiBoZWlnaHQ9IjEyOCIgcng9IjEyIiBmaWxsPSIjMjYyNjI2IiBzdHJva2U9IiMzZDRlNjYiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjcwNCIgeT0iNjIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2NTAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZWQ4OyBmb250LXNpemU6MTJweCI+RmlyZXN0b3JlIEFQSTwvdGV4dD4KPHRleHQgeD0iNzA0IiB5PSI5NCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNjOWNmZDgiPmJhY2t1cHMgwrcgUElUUjwvdGV4dD4KPHRleHQgeD0iNzA0IiB5PSIxMTEiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZmQ4Ij5kYXRhYmFzZSBzZXR0aW5nczwvdGV4dD4KPC9zdmc+" alt="The Tensor9 service adapter handles DocumentDB management requests using Firestore API and returns DocumentDB responses." />
</div>

<p className="t9-caption">Tensor9 translates DocumentDB management requests to the target API and returns DocumentDB responses.</p>

#### Limitations

△ Where DocumentDB and Firestore (Mongo compat) stay different

* **Serverless operation removes instance controls.** There are no replica instances to add, no manual failover, no stop / start, and no compute or storage sizing; reads scale and fail over automatically.
* **Multi-region is a create-time choice.** The database's location is fixed at creation; there is no global-cluster object and no switchover call.
* **Few cluster settings have equivalents.** Database-level settings (point-in-time recovery, delete protection) map; most DocumentDB cluster parameters have no counterpart.
* **Event subscriptions are not served.** DocumentDB event notifications publish to SNS; Cloud Monitoring is a different model with no direct counterpart.

#### Other considerations

**Migration.** Copy existing data with MongoDB migration tools that the target supports. Check the workload's queries, indexes, and BSON types against the comparison table before switching connections; sharing a wire protocol does not make every MongoDB feature equivalent.

**Operations.** The customer owns the Firestore database in their Google Cloud: quotas and pricing are Google's.

**Features and capacity.** The comparison table on this page lists database features and high-availability differences. Check the target service's pricing and capacity limits when sizing the deployment.

## On Azure

### Via Azure Cosmos DB for MongoDB (vCore)

| Operation                                        | Area                    | Support      | Depth        | Notes                                                |
| ------------------------------------------------ | ----------------------- | ------------ | ------------ | ---------------------------------------------------- |
| collStats                                        | Admin & diagnostics     | Supported    | Full surface | -                                                    |
| dbStats                                          | Admin & diagnostics     | Supported    | Full surface | -                                                    |
| explain                                          | Admin & diagnostics     | Supported    | Full surface | query plan                                           |
| hello                                            | Admin & diagnostics     | Supported    | Full surface | topology handshake                                   |
| isMaster                                         | Admin & diagnostics     | Supported    | Full surface | legacy topology handshake                            |
| ping                                             | Admin & diagnostics     | Supported    | Full surface | -                                                    |
| serverStatus                                     | Admin & diagnostics     | Supported    | Full surface | -                                                    |
| delete                                           | CRUD                    | Supported    | Common       | -                                                    |
| find                                             | CRUD                    | Supported    | Common       | -                                                    |
| findAndModify                                    | CRUD                    | Supported    | Common       | atomic read-modify-write                             |
| getMore                                          | CRUD                    | Supported    | Common       | cursor iteration                                     |
| insert                                           | CRUD                    | Supported    | Common       | -                                                    |
| killCursors                                      | CRUD                    | Supported    | Most usage   | -                                                    |
| update                                           | CRUD                    | Supported    | Common       | -                                                    |
| Change streams (\$changeStream / watch)          | Change streams          | Supported    | Most usage   | -                                                    |
| collMod                                          | Collections & databases | Supported    | Full surface | -                                                    |
| create                                           | Collections & databases | Partial      | Most usage   | collections yes; capped collections not supported    |
| drop                                             | Collections & databases | Supported    | Most usage   | -                                                    |
| dropDatabase                                     | Collections & databases | Supported    | Full surface | -                                                    |
| listCollections                                  | Collections & databases | Supported    | Most usage   | -                                                    |
| listDatabases                                    | Collections & databases | Supported    | Most usage   | -                                                    |
| renameCollection                                 | Collections & databases | Supported    | Full surface | -                                                    |
| createIndexes                                    | Indexes                 | Supported    | Most usage   | -                                                    |
| dropIndexes                                      | Indexes                 | Supported    | Most usage   | -                                                    |
| listIndexes                                      | Indexes                 | Supported    | Most usage   | -                                                    |
| aggregate                                        | Query & aggregation     | Supported    | Common       | gains \$graphLookup + richer operators vs DocumentDB |
| count                                            | Query & aggregation     | Supported    | Common       | -                                                    |
| distinct                                         | Query & aggregation     | Supported    | Most usage   | -                                                    |
| mapReduce                                        | Query & aggregation     | Out of scope | Full surface | not offered on Cosmos vCore                          |
| Transactions (startTransaction / commit / abort) | Transactions            | Partial      | Most usage   | multi-document ACID, capped at 30 seconds            |

#### How it works

Your application's MongoDB driver connects directly to Azure Cosmos DB for MongoDB (vCore). These database requests are the **data plane**. The driver and MongoDB wire protocol stay unchanged, and Tensor9 does not proxy or translate these database requests.

Management requests, such as snapshots, restore, replicas, failover, and configuration changes, form the **control plane**. Tensor9 serves the DocumentDB API in the customer's appliance and translates those requests to the target's management API. The sections below describe which operations have equivalents and which return errors.

<div className="t9-diagram-scroll" role="region" aria-label="Scrollable diagram" tabIndex={0}>
  <img className="t9-diagram-light" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMjUyIiB2aWV3Qm94PSIwIDAgODM2IDI1MiIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJEYXRhYmFzZSByZXF1ZXN0cyAoTW9uZ29EQiB3aXJlIHByb3RvY29sKSBjb25uZWN0IGRpcmVjdGx5IHRvIENvc21vcyBEQiAodkNvcmUpLiBUaGUgVGVuc29yOSBzZXJ2aWNlIGFkYXB0ZXIgdHJhbnNsYXRlcyBEb2N1bWVudERCIEFQSSBtYW5hZ2VtZW50IGNhbGxzIHRvIEF6dXJlIG1hbmFnZW1lbnQgQVBJLiI+PHN0eWxlPnRleHR7Zm9udC1mYW1pbHk6SW50ZXIsLWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsJ1NlZ29lIFVJJyxSb2JvdG8sJ0hlbHZldGljYSBOZXVlJyxBcmlhbCxzYW5zLXNlcmlmO2ZpbGw6IzMzNDE1NX08L3N0eWxlPgo8ZGVmcz48bWFya2VyIGlkPSJhaGQtY29zbW9zLWRiLXZjb3JlIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjgiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0by1zdGFydC1yZXZlcnNlIj48cGF0aCBkPSJNMCwwIEwxMCw1IEwwLDEwIHoiIGZpbGw9IiM5NGEzYjgiLz48L21hcmtlcj48L2RlZnM+CjxyZWN0IHg9IjgiIHk9IjM0IiB3aWR0aD0iODIwIiBoZWlnaHQ9IjIwNiIgcng9IjE2IiBmaWxsPSIjZjhmYWZjIiBzdHJva2U9IiNjYmQ1ZTEiIHN0cm9rZS13aWR0aD0iMS40IiBzdHJva2UtZGFzaGFycmF5PSI1IDUiLz4KPHRleHQgeD0iMjYiIHk9IjU0IiBzdHlsZT0iZm9udDogNzAwIDEwcHggSW50ZXIsIHNhbnMtc2VyaWY7IGxldHRlci1zcGFjaW5nOiAxLjNweDsgZmlsbDogIzk0YTNiODsgZmlsbDojMDQ3ODU3Ij5PTiBBWlVSRTwvdGV4dD4KPHJlY3QgeD0iMjYiIHk9Ijg4IiB3aWR0aD0iMTI4IiBoZWlnaHQ9IjExMiIgcng9IjEyIiBmaWxsPSIjZmZmIiBzdHJva2U9IiNlMmU4ZjAiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjkwIiB5PSIxMjYiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2NTAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMGYxNzJhOyBmb250LXNpemU6MTNweCI+WW91ciBhcHA8L3RleHQ+Cjx0ZXh0IHg9IjkwIiB5PSIxNDUiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjNjQ3NDhiIj5Nb25nb0RCIGRyaXZlcjwvdGV4dD4KPHRleHQgeD0iOTAiIHk9IjE2MiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDYwMCAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMDU5NjY5Ij51bmNoYW5nZWQ8L3RleHQ+Cjx0ZXh0IHg9IjIwMCIgeT0iODIiIHN0eWxlPSJmb250OiA3MDAgMTBweCBJbnRlciwgc2Fucy1zZXJpZjsgbGV0dGVyLXNwYWNpbmc6IDEuM3B4OyBmaWxsOiAjOTRhM2I4OyBmaWxsOiMwNDc4NTciPkRBVEFCQVNFIFJFUVVFU1RTIMK3IERJUkVDVCBDT05ORUNUSU9OPC90ZXh0Pgo8bGluZSB4MT0iMTU0IiB5MT0iMTA4IiB4Mj0iNjEwIiB5Mj0iMTA4IiBzdHJva2U9IiMwNTk2NjkiIHN0cm9rZS13aWR0aD0iMi4yIiBtYXJrZXItZW5kPSJ1cmwoI2FoZC1jb3Ntb3MtZGItdmNvcmUpIi8+Cjx0ZXh0IHg9IjM4MiIgeT0iMTAwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTBweCAnU0YgTW9ubycsIHVpLW1vbm9zcGFjZSwgJ0pldEJyYWlucyBNb25vJywgTWVubG8sIG1vbm9zcGFjZTsgZmlsbDogIzY0NzQ4YjsgZmlsbDojMDQ3ODU3Ij5Nb25nb0RCIHdpcmUgcHJvdG9jb2w8L3RleHQ+CjxyZWN0IHg9IjYxNCIgeT0iNzYiIHdpZHRoPSIxOTYiIGhlaWdodD0iNjQiIHJ4PSIxMiIgZmlsbD0iI2ZmZiIgc3Ryb2tlPSIjZTJlOGYwIiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8dGV4dCB4PSI3MTIiIHk9IjEwMyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDY1MCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICMwZjE3MmE7IGZvbnQtc2l6ZToxMnB4Ij5Db3Ntb3MgREIgKHZDb3JlKTwvdGV4dD4KPHRleHQgeD0iNzEyIiB5PSIxMjIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjNjQ3NDhiIj5Nb25nb0RCLWNvbXBhdGlibGU8L3RleHQ+Cjx0ZXh0IHg9IjIwMCIgeT0iMTU4IiBzdHlsZT0iZm9udDogNzAwIDEwcHggSW50ZXIsIHNhbnMtc2VyaWY7IGxldHRlci1zcGFjaW5nOiAxLjNweDsgZmlsbDogIzk0YTNiOCI+TUFOQUdFTUVOVCBSRVFVRVNUUyDCtyBWSUEgVEVOU09SOTwvdGV4dD4KPGxpbmUgeDE9IjE1NCIgeTE9IjE5NiIgeDI9IjMwMCIgeTI9IjE5NiIgc3Ryb2tlPSIjOTRhM2I4IiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgjYWhkLWNvc21vcy1kYi12Y29yZSkiLz4KPHRleHQgeD0iMjI3IiB5PSIxODgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMHB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjNjQ3NDhiIj5Eb2N1bWVudERCIEFQSTwvdGV4dD4KPHJlY3QgeD0iMzA0IiB5PSIxNjQiIHdpZHRoPSIxODAiIGhlaWdodD0iNjYiIHJ4PSIxMiIgZmlsbD0iI2VjZmRmNSIgc3Ryb2tlPSIjMDU5NjY5IiBzdHJva2Utd2lkdGg9IjEuNyIvPgo8dGV4dCB4PSIzOTQiIHk9IjE5MSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDcwMCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICMwNDc4NTc7IGZvbnQtc2l6ZToxMnB4Ij5UZW5zb3I5PC90ZXh0PgogIDx0ZXh0IHg9IjM5NCIgeT0iMjA4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTAuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMDQ3ODU3Ij5zZXJ2aWNlIGFkYXB0ZXI8L3RleHQ+CjxsaW5lIHgxPSI0ODQiIHkxPSIxOTYiIHgyPSI2MTAiIHkyPSIxOTYiIHN0cm9rZT0iIzk0YTNiOCIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2FoZC1jb3Ntb3MtZGItdmNvcmUpIi8+CjxyZWN0IHg9IjYxNCIgeT0iMTY0IiB3aWR0aD0iMTk2IiBoZWlnaHQ9IjY0IiByeD0iMTIiIGZpbGw9IiNmZmYiIHN0cm9rZT0iI2UyZThmMCIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KPHRleHQgeD0iNzEyIiB5PSIxOTEiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2NTAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMGYxNzJhOyBmb250LXNpemU6MTEuNXB4Ij5BenVyZSBtYW5hZ2VtZW50IEFQSTwvdGV4dD4KPHRleHQgeD0iNzEyIiB5PSIyMTAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjNjQ3NDhiIj50aGUgdGFyZ2V0J3MgbWFuYWdlbWVudCBBUEk8L3RleHQ+Cjwvc3ZnPg==" alt="Database requests (MongoDB wire protocol) connect directly to Cosmos DB (vCore). The Tensor9 service adapter translates DocumentDB API management calls to Azure management API." />

  <img className="t9-diagram-dark" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMjUyIiB2aWV3Qm94PSIwIDAgODM2IDI1MiIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJEYXRhYmFzZSByZXF1ZXN0cyAoTW9uZ29EQiB3aXJlIHByb3RvY29sKSBjb25uZWN0IGRpcmVjdGx5IHRvIENvc21vcyBEQiAodkNvcmUpLiBUaGUgVGVuc29yOSBzZXJ2aWNlIGFkYXB0ZXIgdHJhbnNsYXRlcyBEb2N1bWVudERCIEFQSSBtYW5hZ2VtZW50IGNhbGxzIHRvIEF6dXJlIG1hbmFnZW1lbnQgQVBJLiI+PHN0eWxlPnRleHR7Zm9udC1mYW1pbHk6SW50ZXIsLWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsJ1NlZ29lIFVJJyxSb2JvdG8sJ0hlbHZldGljYSBOZXVlJyxBcmlhbCxzYW5zLXNlcmlmO2ZpbGw6I2NiZDVlMX08L3N0eWxlPgo8ZGVmcz48bWFya2VyIGlkPSJhaGQtY29zbW9zLWRiLXZjb3JlIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjgiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0by1zdGFydC1yZXZlcnNlIj48cGF0aCBkPSJNMCwwIEwxMCw1IEwwLDEwIHoiIGZpbGw9IiM5NGEzYjgiLz48L21hcmtlcj48L2RlZnM+CjxyZWN0IHg9IjgiIHk9IjM0IiB3aWR0aD0iODIwIiBoZWlnaHQ9IjIwNiIgcng9IjE2IiBmaWxsPSIjMWEyNjMxIiBzdHJva2U9IiMzZDRmNjYiIHN0cm9rZS13aWR0aD0iMS40IiBzdHJva2UtZGFzaGFycmF5PSI1IDUiLz4KPHRleHQgeD0iMjYiIHk9IjU0IiBzdHlsZT0iZm9udDogNzAwIDEwcHggSW50ZXIsIHNhbnMtc2VyaWY7IGxldHRlci1zcGFjaW5nOiAxLjNweDsgZmlsbDogIzk0YTNiODsgZmlsbDogIzkwZGVjOCI+T04gQVpVUkU8L3RleHQ+CjxyZWN0IHg9IjI2IiB5PSI4OCIgd2lkdGg9IjEyOCIgaGVpZ2h0PSIxMTIiIHJ4PSIxMiIgZmlsbD0iIzI2MjYyNiIgc3Ryb2tlPSIjM2Q0ZTY2IiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8dGV4dCB4PSI5MCIgeT0iMTI2IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNjUwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogI2M5Y2VkODsgZm9udC1zaXplOjEzcHgiPllvdXIgYXBwPC90ZXh0Pgo8dGV4dCB4PSI5MCIgeT0iMTQ1IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogI2M5Y2ZkOCI+TW9uZ29EQiBkcml2ZXI8L3RleHQ+Cjx0ZXh0IHg9IjkwIiB5PSIxNjIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2MDAgMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzkwZGVjNiI+dW5jaGFuZ2VkPC90ZXh0Pgo8dGV4dCB4PSIyMDAiIHk9IjgyIiBzdHlsZT0iZm9udDogNzAwIDEwcHggSW50ZXIsIHNhbnMtc2VyaWY7IGxldHRlci1zcGFjaW5nOiAxLjNweDsgZmlsbDogIzk0YTNiODsgZmlsbDogIzkwZGVjOCI+REFUQUJBU0UgUkVRVUVTVFMgwrcgRElSRUNUIENPTk5FQ1RJT048L3RleHQ+CjxsaW5lIHgxPSIxNTQiIHkxPSIxMDgiIHgyPSI2MTAiIHkyPSIxMDgiIHN0cm9rZT0iIzA1OTY2OSIgc3Ryb2tlLXdpZHRoPSIyLjIiIG1hcmtlci1lbmQ9InVybCgjYWhkLWNvc21vcy1kYi12Y29yZSkiLz4KPHRleHQgeD0iMzgyIiB5PSIxMDAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMHB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjYzljZmQ4OyBmaWxsOiAjOTBkZWM4Ij5Nb25nb0RCIHdpcmUgcHJvdG9jb2w8L3RleHQ+CjxyZWN0IHg9IjYxNCIgeT0iNzYiIHdpZHRoPSIxOTYiIGhlaWdodD0iNjQiIHJ4PSIxMiIgZmlsbD0iIzI2MjYyNiIgc3Ryb2tlPSIjM2Q0ZTY2IiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8dGV4dCB4PSI3MTIiIHk9IjEwMyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDY1MCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNjOWNlZDg7IGZvbnQtc2l6ZToxMnB4Ij5Db3Ntb3MgREIgKHZDb3JlKTwvdGV4dD4KPHRleHQgeD0iNzEyIiB5PSIxMjIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZmQ4Ij5Nb25nb0RCLWNvbXBhdGlibGU8L3RleHQ+Cjx0ZXh0IHg9IjIwMCIgeT0iMTU4IiBzdHlsZT0iZm9udDogNzAwIDEwcHggSW50ZXIsIHNhbnMtc2VyaWY7IGxldHRlci1zcGFjaW5nOiAxLjNweDsgZmlsbDogIzk0YTNiOCI+TUFOQUdFTUVOVCBSRVFVRVNUUyDCtyBWSUEgVEVOU09SOTwvdGV4dD4KPGxpbmUgeDE9IjE1NCIgeTE9IjE5NiIgeDI9IjMwMCIgeTI9IjE5NiIgc3Ryb2tlPSIjNDE0ZTYyIiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgjYWhkLWNvc21vcy1kYi12Y29yZSkiLz4KPHRleHQgeD0iMjI3IiB5PSIxODgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMHB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjYzljZmQ4Ij5Eb2N1bWVudERCIEFQSTwvdGV4dD4KPHJlY3QgeD0iMzA0IiB5PSIxNjQiIHdpZHRoPSIxODAiIGhlaWdodD0iNjYiIHJ4PSIxMiIgZmlsbD0iIzFhMzEyNiIgc3Ryb2tlPSIjMDU5NjY5IiBzdHJva2Utd2lkdGg9IjEuNyIvPgo8dGV4dCB4PSIzOTQiIHk9IjE5MSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDcwMCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM5MGRlYzg7IGZvbnQtc2l6ZToxMnB4Ij5UZW5zb3I5PC90ZXh0PgogIDx0ZXh0IHg9IjM5NCIgeT0iMjA4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTAuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjOTBkZWM4Ij5zZXJ2aWNlIGFkYXB0ZXI8L3RleHQ+CjxsaW5lIHgxPSI0ODQiIHkxPSIxOTYiIHgyPSI2MTAiIHkyPSIxOTYiIHN0cm9rZT0iIzQxNGU2MiIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2FoZC1jb3Ntb3MtZGItdmNvcmUpIi8+CjxyZWN0IHg9IjYxNCIgeT0iMTY0IiB3aWR0aD0iMTk2IiBoZWlnaHQ9IjY0IiByeD0iMTIiIGZpbGw9IiMyNjI2MjYiIHN0cm9rZT0iIzNkNGU2NiIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KPHRleHQgeD0iNzEyIiB5PSIxOTEiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2NTAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZWQ4OyBmb250LXNpemU6MTEuNXB4Ij5BenVyZSBtYW5hZ2VtZW50IEFQSTwvdGV4dD4KPHRleHQgeD0iNzEyIiB5PSIyMTAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZmQ4Ij50aGUgdGFyZ2V0J3MgbWFuYWdlbWVudCBBUEk8L3RleHQ+Cjwvc3ZnPg==" alt="Database requests (MongoDB wire protocol) connect directly to Cosmos DB (vCore). The Tensor9 service adapter translates DocumentDB API management calls to Azure management API." />
</div>

<p className="t9-caption">Queries reach the database directly; only the management calls are translated.</p>

#### Database connections

DocumentDB and Cosmos vCore each implement part of the MongoDB API. Cosmos vCore supports graph lookups and more aggregation operations than DocumentDB, but does not support server-side mapReduce. It limits multi-document transactions to 30 seconds. Your driver connects directly to Cosmos vCore, where your queries and indexes run.

Each target implements a different set of MongoDB features. The comparison table on this page covers transactions, change streams, lookups, text and vector search, and other features your application may use.

#### Database management

At runtime your application and operational tooling keep making the same DocumentDB calls they make today: describe the cluster, take a snapshot, restore to a point in time, add replicas, trigger a failover, change the tier or a parameter. The adapter accepts DocumentDB requests, returns DocumentDB response formats, and performs supported operations on Azure: snapshots and point-in-time restore to a new cluster, replica clusters, manual failover (forced or graceful promotion), and tier and storage updates. Global-cluster calls map to Cosmos vCore's single secondary region.

When your product is deployed into the customer environment, Tensor9 compiles the cluster your stack already declares into the equivalent Azure Cosmos DB for MongoDB (vCore) resources and sets the connection string and credentials into your application's configuration. The control-plane adapter then covers the management calls your running system makes.

<div className="t9-diagram-scroll" role="region" aria-label="Scrollable diagram" tabIndex={0}>
  <img className="t9-diagram-light" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMTk2IiB2aWV3Qm94PSIwIDAgODM2IDE5NiIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJUaGUgVGVuc29yOSBzZXJ2aWNlIGFkYXB0ZXIgaGFuZGxlcyBEb2N1bWVudERCIG1hbmFnZW1lbnQgcmVxdWVzdHMgdXNpbmcgQXp1cmUgbWFuYWdlbWVudCBBUEkgYW5kIHJldHVybnMgRG9jdW1lbnREQiByZXNwb25zZXMuIj48c3R5bGU+dGV4dHtmb250LWZhbWlseTpJbnRlciwtYXBwbGUtc3lzdGVtLEJsaW5rTWFjU3lzdGVtRm9udCwnU2Vnb2UgVUknLFJvYm90bywnSGVsdmV0aWNhIE5ldWUnLEFyaWFsLHNhbnMtc2VyaWY7ZmlsbDojMzM0MTU1fTwvc3R5bGU+CjxkZWZzPjxtYXJrZXIgaWQ9ImFoYy1kb2N1bWVudGRiLWF6dXJlLW1hbmFnZW1lbnQtYXBpIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjgiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0by1zdGFydC1yZXZlcnNlIj48cGF0aCBkPSJNMCwwIEwxMCw1IEwwLDEwIHoiIGZpbGw9IiM5NGEzYjgiLz48L21hcmtlcj48L2RlZnM+CjxyZWN0IHg9IjE2IiB5PSIzNCIgd2lkdGg9IjIzNiIgaGVpZ2h0PSIxMjgiIHJ4PSIxMiIgZmlsbD0iI2ZmZiIgc3Ryb2tlPSIjZTJlOGYwIiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8dGV4dCB4PSIxMzQiIHk9IjYwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNjUwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzBmMTcyYTsgZm9udC1zaXplOjEyLjVweCI+RG9jdW1lbnREQiBtYW5hZ2VtZW50IGNhbGw8L3RleHQ+Cjx0ZXh0IHg9IjEzNCIgeT0iODIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjNjQ3NDhiIj5zbmFwc2hvdCDCtyBwb2ludC1pbi10aW1lIHJlc3RvcmU8L3RleHQ+Cjx0ZXh0IHg9IjEzNCIgeT0iOTkiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjNjQ3NDhiIj5yZXBsaWNhIMK3IGZhaWxvdmVyIMK3IGdsb2JhbCBjbHVzdGVyPC90ZXh0Pgo8dGV4dCB4PSIxMzQiIHk9IjExNiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM2NDc0OGIiPnN0b3AgLyBzdGFydCDCtyBwYXJhbWV0ZXJzPC90ZXh0Pgo8dGV4dCB4PSIxMzQiIHk9IjE0MiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwcHggJ1NGIE1vbm8nLCB1aS1tb25vc3BhY2UsICdKZXRCcmFpbnMgTW9ubycsIE1lbmxvLCBtb25vc3BhY2U7IGZpbGw6ICM2NDc0OGIiPnNhbWUgcmVxdWVzdCAvIHJlc3BvbnNlIHNoYXBlczwvdGV4dD4KPGxpbmUgeDE9IjI1MiIgeTE9Ijc0IiB4Mj0iMzE0IiB5Mj0iNzQiIHN0cm9rZT0iIzk0YTNiOCIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2FoYy1kb2N1bWVudGRiLWF6dXJlLW1hbmFnZW1lbnQtYXBpKSIvPgo8bGluZSB4MT0iMzE4IiB5MT0iMTI4IiB4Mj0iMjU2IiB5Mj0iMTI4IiBzdHJva2U9IiM5NGEzYjgiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNhaGMtZG9jdW1lbnRkYi1henVyZS1tYW5hZ2VtZW50LWFwaSkiLz4KPHJlY3QgeD0iMzE4IiB5PSI1NCIgd2lkdGg9IjIwNCIgaGVpZ2h0PSI4OCIgcng9IjEyIiBmaWxsPSIjZWNmZGY1IiBzdHJva2U9IiMwNTk2NjkiIHN0cm9rZS13aWR0aD0iMS43Ii8+Cjx0ZXh0IHg9IjQyMCIgeT0iOTQiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA3MDAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMDQ3ODU3OyBmb250LXNpemU6MTJweCI+VGVuc29yOTwvdGV4dD4KICA8dGV4dCB4PSI0MjAiIHk9IjExMiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzA0Nzg1NyI+c2VydmljZSBhZGFwdGVyPC90ZXh0Pgo8bGluZSB4MT0iNTIyIiB5MT0iNzQiIHgyPSI1ODQiIHkyPSI3NCIgc3Ryb2tlPSIjOTRhM2I4IiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgjYWhjLWRvY3VtZW50ZGItYXp1cmUtbWFuYWdlbWVudC1hcGkpIi8+CjxsaW5lIHgxPSI1ODgiIHkxPSIxMjgiIHgyPSI1MjYiIHkyPSIxMjgiIHN0cm9rZT0iIzk0YTNiOCIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2FoYy1kb2N1bWVudGRiLWF6dXJlLW1hbmFnZW1lbnQtYXBpKSIvPgo8cmVjdCB4PSI1ODgiIHk9IjM0IiB3aWR0aD0iMjMyIiBoZWlnaHQ9IjEyOCIgcng9IjEyIiBmaWxsPSIjZmZmIiBzdHJva2U9IiNlMmU4ZjAiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjcwNCIgeT0iNjIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2NTAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMGYxNzJhOyBmb250LXNpemU6MTJweCI+QXp1cmUgbWFuYWdlbWVudCBBUEk8L3RleHQ+Cjx0ZXh0IHg9IjcwNCIgeT0iOTQiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjNjQ3NDhiIj5yZXN0b3JlcyDCtyByZXBsaWNhcyDCtyBmYWlsb3ZlcjwvdGV4dD4KPHRleHQgeD0iNzA0IiB5PSIxMTEiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjNjQ3NDhiIj50aWVyIGFuZCBzdG9yYWdlIHVwZGF0ZXM8L3RleHQ+Cjwvc3ZnPg==" alt="The Tensor9 service adapter handles DocumentDB management requests using Azure management API and returns DocumentDB responses." />

  <img className="t9-diagram-dark" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMTk2IiB2aWV3Qm94PSIwIDAgODM2IDE5NiIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJUaGUgVGVuc29yOSBzZXJ2aWNlIGFkYXB0ZXIgaGFuZGxlcyBEb2N1bWVudERCIG1hbmFnZW1lbnQgcmVxdWVzdHMgdXNpbmcgQXp1cmUgbWFuYWdlbWVudCBBUEkgYW5kIHJldHVybnMgRG9jdW1lbnREQiByZXNwb25zZXMuIj48c3R5bGU+dGV4dHtmb250LWZhbWlseTpJbnRlciwtYXBwbGUtc3lzdGVtLEJsaW5rTWFjU3lzdGVtRm9udCwnU2Vnb2UgVUknLFJvYm90bywnSGVsdmV0aWNhIE5ldWUnLEFyaWFsLHNhbnMtc2VyaWY7ZmlsbDojY2JkNWUxfTwvc3R5bGU+CjxkZWZzPjxtYXJrZXIgaWQ9ImFoYy1kb2N1bWVudGRiLWF6dXJlLW1hbmFnZW1lbnQtYXBpIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjgiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0by1zdGFydC1yZXZlcnNlIj48cGF0aCBkPSJNMCwwIEwxMCw1IEwwLDEwIHoiIGZpbGw9IiM5NGEzYjgiLz48L21hcmtlcj48L2RlZnM+CjxyZWN0IHg9IjE2IiB5PSIzNCIgd2lkdGg9IjIzNiIgaGVpZ2h0PSIxMjgiIHJ4PSIxMiIgZmlsbD0iIzI2MjYyNiIgc3Ryb2tlPSIjM2Q0ZTY2IiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8dGV4dCB4PSIxMzQiIHk9IjYwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNjUwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogI2M5Y2VkODsgZm9udC1zaXplOjEyLjVweCI+RG9jdW1lbnREQiBtYW5hZ2VtZW50IGNhbGw8L3RleHQ+Cjx0ZXh0IHg9IjEzNCIgeT0iODIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZmQ4Ij5zbmFwc2hvdCDCtyBwb2ludC1pbi10aW1lIHJlc3RvcmU8L3RleHQ+Cjx0ZXh0IHg9IjEzNCIgeT0iOTkiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZmQ4Ij5yZXBsaWNhIMK3IGZhaWxvdmVyIMK3IGdsb2JhbCBjbHVzdGVyPC90ZXh0Pgo8dGV4dCB4PSIxMzQiIHk9IjExNiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNjOWNmZDgiPnN0b3AgLyBzdGFydCDCtyBwYXJhbWV0ZXJzPC90ZXh0Pgo8dGV4dCB4PSIxMzQiIHk9IjE0MiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwcHggJ1NGIE1vbm8nLCB1aS1tb25vc3BhY2UsICdKZXRCcmFpbnMgTW9ubycsIE1lbmxvLCBtb25vc3BhY2U7IGZpbGw6ICNjOWNmZDgiPnNhbWUgcmVxdWVzdCAvIHJlc3BvbnNlIHNoYXBlczwvdGV4dD4KPGxpbmUgeDE9IjI1MiIgeTE9Ijc0IiB4Mj0iMzE0IiB5Mj0iNzQiIHN0cm9rZT0iIzQxNGU2MiIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2FoYy1kb2N1bWVudGRiLWF6dXJlLW1hbmFnZW1lbnQtYXBpKSIvPgo8bGluZSB4MT0iMzE4IiB5MT0iMTI4IiB4Mj0iMjU2IiB5Mj0iMTI4IiBzdHJva2U9IiM0MTRlNjIiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNhaGMtZG9jdW1lbnRkYi1henVyZS1tYW5hZ2VtZW50LWFwaSkiLz4KPHJlY3QgeD0iMzE4IiB5PSI1NCIgd2lkdGg9IjIwNCIgaGVpZ2h0PSI4OCIgcng9IjEyIiBmaWxsPSIjMWEzMTI2IiBzdHJva2U9IiMwNTk2NjkiIHN0cm9rZS13aWR0aD0iMS43Ii8+Cjx0ZXh0IHg9IjQyMCIgeT0iOTQiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA3MDAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjOTBkZWM4OyBmb250LXNpemU6MTJweCI+VGVuc29yOTwvdGV4dD4KICA8dGV4dCB4PSI0MjAiIHk9IjExMiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzkwZGVjOCI+c2VydmljZSBhZGFwdGVyPC90ZXh0Pgo8bGluZSB4MT0iNTIyIiB5MT0iNzQiIHgyPSI1ODQiIHkyPSI3NCIgc3Ryb2tlPSIjNDE0ZTYyIiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgjYWhjLWRvY3VtZW50ZGItYXp1cmUtbWFuYWdlbWVudC1hcGkpIi8+CjxsaW5lIHgxPSI1ODgiIHkxPSIxMjgiIHgyPSI1MjYiIHkyPSIxMjgiIHN0cm9rZT0iIzQxNGU2MiIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2FoYy1kb2N1bWVudGRiLWF6dXJlLW1hbmFnZW1lbnQtYXBpKSIvPgo8cmVjdCB4PSI1ODgiIHk9IjM0IiB3aWR0aD0iMjMyIiBoZWlnaHQ9IjEyOCIgcng9IjEyIiBmaWxsPSIjMjYyNjI2IiBzdHJva2U9IiMzZDRlNjYiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjcwNCIgeT0iNjIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2NTAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZWQ4OyBmb250LXNpemU6MTJweCI+QXp1cmUgbWFuYWdlbWVudCBBUEk8L3RleHQ+Cjx0ZXh0IHg9IjcwNCIgeT0iOTQiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZmQ4Ij5yZXN0b3JlcyDCtyByZXBsaWNhcyDCtyBmYWlsb3ZlcjwvdGV4dD4KPHRleHQgeD0iNzA0IiB5PSIxMTEiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZmQ4Ij50aWVyIGFuZCBzdG9yYWdlIHVwZGF0ZXM8L3RleHQ+Cjwvc3ZnPg==" alt="The Tensor9 service adapter handles DocumentDB management requests using Azure management API and returns DocumentDB responses." />
</div>

<p className="t9-caption">Tensor9 translates DocumentDB management requests to the target API and returns DocumentDB responses.</p>

#### Limitations

△ Where DocumentDB and Cosmos DB (vCore) stay different

* **No stop / start.** Cosmos vCore has no pause; a managed cluster runs continuously.
* **Only one secondary region is supported.** There is no multi-region global-cluster object; cross-region maps to a single secondary region with forced / graceful failover.
* **Event subscriptions are not served.** DocumentDB event notifications publish to SNS; Azure Monitor is a different model with no direct counterpart.
* **DocumentDB-proprietary settings have no counterpart.** Standard cluster parameters translate to the cluster's configuration; parameters specific to DocumentDB are not supported on the target.

#### Other considerations

**Migration.** Copy existing data with MongoDB migration tools that the target supports. Check the workload's queries, indexes, and BSON types against the comparison table before switching connections; sharing a wire protocol does not make every MongoDB feature equivalent.

**Operations.** The customer owns the Cosmos DB cluster in their Azure subscription: maintenance windows, quotas, and pricing are Microsoft's.

**Features and capacity.** The comparison table on this page lists database features and high-availability differences. Check the target service's pricing and capacity limits when sizing the deployment.

## On OCI

### Via Oracle Autonomous JSON Database (MongoDB API)

| Operation                                        | Area                    | Support      | Depth        | Notes                                                                |
| ------------------------------------------------ | ----------------------- | ------------ | ------------ | -------------------------------------------------------------------- |
| collStats                                        | Admin & diagnostics     | Supported    | Full surface | -                                                                    |
| dbStats                                          | Admin & diagnostics     | Supported    | Full surface | -                                                                    |
| explain                                          | Admin & diagnostics     | Supported    | Full surface | query plan                                                           |
| hello                                            | Admin & diagnostics     | Supported    | Full surface | topology handshake                                                   |
| isMaster                                         | Admin & diagnostics     | Supported    | Full surface | legacy topology handshake                                            |
| ping                                             | Admin & diagnostics     | Supported    | Full surface | -                                                                    |
| serverStatus                                     | Admin & diagnostics     | Supported    | Full surface | -                                                                    |
| delete                                           | CRUD                    | Supported    | Common       | -                                                                    |
| find                                             | CRUD                    | Supported    | Common       | -                                                                    |
| findAndModify                                    | CRUD                    | Supported    | Common       | atomic read-modify-write                                             |
| getMore                                          | CRUD                    | Supported    | Common       | cursor iteration                                                     |
| insert                                           | CRUD                    | Supported    | Common       | -                                                                    |
| killCursors                                      | CRUD                    | Supported    | Most usage   | -                                                                    |
| update                                           | CRUD                    | Supported    | Common       | -                                                                    |
| Change streams (\$changeStream / watch)          | Change streams          | Partial      | Full surface | 26ai beta preview                                                    |
| create                                           | Collections & databases | Supported    | Most usage   | -                                                                    |
| drop                                             | Collections & databases | Supported    | Most usage   | -                                                                    |
| dropDatabase                                     | Collections & databases | Supported    | Full surface | -                                                                    |
| listCollections                                  | Collections & databases | Supported    | Most usage   | -                                                                    |
| listDatabases                                    | Collections & databases | Supported    | Most usage   | -                                                                    |
| createIndexes                                    | Indexes                 | Supported    | Most usage   | -                                                                    |
| dropIndexes                                      | Indexes                 | Supported    | Most usage   | -                                                                    |
| listIndexes                                      | Indexes                 | Supported    | Most usage   | -                                                                    |
| \$sql stage / cross-collection SQL joins         | Query & aggregation     | Supported    | Full surface | query collections through Oracle SQL, in addition to the MongoDB API |
| aggregate                                        | Query & aggregation     | Partial      | Common       | MongoDB 4.2-era pipeline                                             |
| count                                            | Query & aggregation     | Supported    | Common       | -                                                                    |
| distinct                                         | Query & aggregation     | Supported    | Most usage   | -                                                                    |
| mapReduce                                        | Query & aggregation     | Out of scope | Full surface | not supported                                                        |
| Transactions (startTransaction / commit / abort) | Transactions            | Partial      | Most usage   | supported; some BSON types coerce on load                            |

#### How it works

Your application's MongoDB driver connects directly to Oracle Autonomous JSON Database. These database requests are the **data plane**. The driver and MongoDB wire protocol stay unchanged, and Tensor9 does not proxy or translate these database requests.

Management requests, such as snapshots, restore, replicas, failover, and configuration changes, form the **control plane**. Tensor9 serves the DocumentDB API in the customer's appliance and translates those requests to the target's management API. The sections below describe which operations have equivalents and which return errors.

<div className="t9-diagram-scroll" role="region" aria-label="Scrollable diagram" tabIndex={0}>
  <img className="t9-diagram-light" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMjUyIiB2aWV3Qm94PSIwIDAgODM2IDI1MiIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJEYXRhYmFzZSByZXF1ZXN0cyAoTW9uZ29EQiB3aXJlIHByb3RvY29sKSBjb25uZWN0IGRpcmVjdGx5IHRvIEF1dG9ub21vdXMgSlNPTiBEYXRhYmFzZS4gVGhlIFRlbnNvcjkgc2VydmljZSBhZGFwdGVyIHRyYW5zbGF0ZXMgRG9jdW1lbnREQiBBUEkgbWFuYWdlbWVudCBjYWxscyB0byBPQ0kgbWFuYWdlbWVudCBBUEkuIj48c3R5bGU+dGV4dHtmb250LWZhbWlseTpJbnRlciwtYXBwbGUtc3lzdGVtLEJsaW5rTWFjU3lzdGVtRm9udCwnU2Vnb2UgVUknLFJvYm90bywnSGVsdmV0aWNhIE5ldWUnLEFyaWFsLHNhbnMtc2VyaWY7ZmlsbDojMzM0MTU1fTwvc3R5bGU+CjxkZWZzPjxtYXJrZXIgaWQ9ImFoZC1hdXRvbm9tb3VzLWpzb24tZGF0YWJhc2UiIHZpZXdCb3g9IjAgMCAxMCAxMCIgcmVmWD0iOCIgcmVmWT0iNSIgbWFya2VyV2lkdGg9IjciIG1hcmtlckhlaWdodD0iNyIgb3JpZW50PSJhdXRvLXN0YXJ0LXJldmVyc2UiPjxwYXRoIGQ9Ik0wLDAgTDEwLDUgTDAsMTAgeiIgZmlsbD0iIzk0YTNiOCIvPjwvbWFya2VyPjwvZGVmcz4KPHJlY3QgeD0iOCIgeT0iMzQiIHdpZHRoPSI4MjAiIGhlaWdodD0iMjA2IiByeD0iMTYiIGZpbGw9IiNmOGZhZmMiIHN0cm9rZT0iI2NiZDVlMSIgc3Ryb2tlLXdpZHRoPSIxLjQiIHN0cm9rZS1kYXNoYXJyYXk9IjUgNSIvPgo8dGV4dCB4PSIyNiIgeT0iNTQiIHN0eWxlPSJmb250OiA3MDAgMTBweCBJbnRlciwgc2Fucy1zZXJpZjsgbGV0dGVyLXNwYWNpbmc6IDEuM3B4OyBmaWxsOiAjOTRhM2I4OyBmaWxsOiMwNDc4NTciPk9OIE9DSTwvdGV4dD4KPHJlY3QgeD0iMjYiIHk9Ijg4IiB3aWR0aD0iMTI4IiBoZWlnaHQ9IjExMiIgcng9IjEyIiBmaWxsPSIjZmZmIiBzdHJva2U9IiNlMmU4ZjAiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjkwIiB5PSIxMjYiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2NTAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMGYxNzJhOyBmb250LXNpemU6MTNweCI+WW91ciBhcHA8L3RleHQ+Cjx0ZXh0IHg9IjkwIiB5PSIxNDUiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjNjQ3NDhiIj5Nb25nb0RCIGRyaXZlcjwvdGV4dD4KPHRleHQgeD0iOTAiIHk9IjE2MiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDYwMCAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMDU5NjY5Ij51bmNoYW5nZWQ8L3RleHQ+Cjx0ZXh0IHg9IjIwMCIgeT0iODIiIHN0eWxlPSJmb250OiA3MDAgMTBweCBJbnRlciwgc2Fucy1zZXJpZjsgbGV0dGVyLXNwYWNpbmc6IDEuM3B4OyBmaWxsOiAjOTRhM2I4OyBmaWxsOiMwNDc4NTciPkRBVEFCQVNFIFJFUVVFU1RTIMK3IERJUkVDVCBDT05ORUNUSU9OPC90ZXh0Pgo8bGluZSB4MT0iMTU0IiB5MT0iMTA4IiB4Mj0iNjEwIiB5Mj0iMTA4IiBzdHJva2U9IiMwNTk2NjkiIHN0cm9rZS13aWR0aD0iMi4yIiBtYXJrZXItZW5kPSJ1cmwoI2FoZC1hdXRvbm9tb3VzLWpzb24tZGF0YWJhc2UpIi8+Cjx0ZXh0IHg9IjM4MiIgeT0iMTAwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTBweCAnU0YgTW9ubycsIHVpLW1vbm9zcGFjZSwgJ0pldEJyYWlucyBNb25vJywgTWVubG8sIG1vbm9zcGFjZTsgZmlsbDogIzY0NzQ4YjsgZmlsbDojMDQ3ODU3Ij5Nb25nb0RCIHdpcmUgcHJvdG9jb2w8L3RleHQ+CjxyZWN0IHg9IjYxNCIgeT0iNzYiIHdpZHRoPSIxOTYiIGhlaWdodD0iNjQiIHJ4PSIxMiIgZmlsbD0iI2ZmZiIgc3Ryb2tlPSIjZTJlOGYwIiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8dGV4dCB4PSI3MTIiIHk9IjEwMyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDY1MCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICMwZjE3MmE7IGZvbnQtc2l6ZToxMnB4Ij5BdXRvbm9tb3VzIEpTT04gRGF0YWJhc2U8L3RleHQ+Cjx0ZXh0IHg9IjcxMiIgeT0iMTIyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzY0NzQ4YiI+T3JhY2xlIEFQSSBmb3IgTW9uZ29EQjwvdGV4dD4KPHRleHQgeD0iMjAwIiB5PSIxNTgiIHN0eWxlPSJmb250OiA3MDAgMTBweCBJbnRlciwgc2Fucy1zZXJpZjsgbGV0dGVyLXNwYWNpbmc6IDEuM3B4OyBmaWxsOiAjOTRhM2I4Ij5NQU5BR0VNRU5UIFJFUVVFU1RTIMK3IFZJQSBURU5TT1I5PC90ZXh0Pgo8bGluZSB4MT0iMTU0IiB5MT0iMTk2IiB4Mj0iMzAwIiB5Mj0iMTk2IiBzdHJva2U9IiM5NGEzYjgiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNhaGQtYXV0b25vbW91cy1qc29uLWRhdGFiYXNlKSIvPgo8dGV4dCB4PSIyMjciIHk9IjE4OCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwcHggJ1NGIE1vbm8nLCB1aS1tb25vc3BhY2UsICdKZXRCcmFpbnMgTW9ubycsIE1lbmxvLCBtb25vc3BhY2U7IGZpbGw6ICM2NDc0OGIiPkRvY3VtZW50REIgQVBJPC90ZXh0Pgo8cmVjdCB4PSIzMDQiIHk9IjE2NCIgd2lkdGg9IjE4MCIgaGVpZ2h0PSI2NiIgcng9IjEyIiBmaWxsPSIjZWNmZGY1IiBzdHJva2U9IiMwNTk2NjkiIHN0cm9rZS13aWR0aD0iMS43Ii8+Cjx0ZXh0IHg9IjM5NCIgeT0iMTkxIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNzAwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzA0Nzg1NzsgZm9udC1zaXplOjEycHgiPlRlbnNvcjk8L3RleHQ+CiAgPHRleHQgeD0iMzk0IiB5PSIyMDgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMC41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICMwNDc4NTciPnNlcnZpY2UgYWRhcHRlcjwvdGV4dD4KPGxpbmUgeDE9IjQ4NCIgeTE9IjE5NiIgeDI9IjYxMCIgeTI9IjE5NiIgc3Ryb2tlPSIjOTRhM2I4IiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgjYWhkLWF1dG9ub21vdXMtanNvbi1kYXRhYmFzZSkiLz4KPHJlY3QgeD0iNjE0IiB5PSIxNjQiIHdpZHRoPSIxOTYiIGhlaWdodD0iNjQiIHJ4PSIxMiIgZmlsbD0iI2ZmZiIgc3Ryb2tlPSIjZTJlOGYwIiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8dGV4dCB4PSI3MTIiIHk9IjE5MSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDY1MCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICMwZjE3MmE7IGZvbnQtc2l6ZToxMS41cHgiPk9DSSBtYW5hZ2VtZW50IEFQSTwvdGV4dD4KPHRleHQgeD0iNzEyIiB5PSIyMTAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjNjQ3NDhiIj50aGUgdGFyZ2V0J3MgbWFuYWdlbWVudCBBUEk8L3RleHQ+Cjwvc3ZnPg==" alt="Database requests (MongoDB wire protocol) connect directly to Autonomous JSON Database. The Tensor9 service adapter translates DocumentDB API management calls to OCI management API." />

  <img className="t9-diagram-dark" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMjUyIiB2aWV3Qm94PSIwIDAgODM2IDI1MiIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJEYXRhYmFzZSByZXF1ZXN0cyAoTW9uZ29EQiB3aXJlIHByb3RvY29sKSBjb25uZWN0IGRpcmVjdGx5IHRvIEF1dG9ub21vdXMgSlNPTiBEYXRhYmFzZS4gVGhlIFRlbnNvcjkgc2VydmljZSBhZGFwdGVyIHRyYW5zbGF0ZXMgRG9jdW1lbnREQiBBUEkgbWFuYWdlbWVudCBjYWxscyB0byBPQ0kgbWFuYWdlbWVudCBBUEkuIj48c3R5bGU+dGV4dHtmb250LWZhbWlseTpJbnRlciwtYXBwbGUtc3lzdGVtLEJsaW5rTWFjU3lzdGVtRm9udCwnU2Vnb2UgVUknLFJvYm90bywnSGVsdmV0aWNhIE5ldWUnLEFyaWFsLHNhbnMtc2VyaWY7ZmlsbDojY2JkNWUxfTwvc3R5bGU+CjxkZWZzPjxtYXJrZXIgaWQ9ImFoZC1hdXRvbm9tb3VzLWpzb24tZGF0YWJhc2UiIHZpZXdCb3g9IjAgMCAxMCAxMCIgcmVmWD0iOCIgcmVmWT0iNSIgbWFya2VyV2lkdGg9IjciIG1hcmtlckhlaWdodD0iNyIgb3JpZW50PSJhdXRvLXN0YXJ0LXJldmVyc2UiPjxwYXRoIGQ9Ik0wLDAgTDEwLDUgTDAsMTAgeiIgZmlsbD0iIzk0YTNiOCIvPjwvbWFya2VyPjwvZGVmcz4KPHJlY3QgeD0iOCIgeT0iMzQiIHdpZHRoPSI4MjAiIGhlaWdodD0iMjA2IiByeD0iMTYiIGZpbGw9IiMxYTI2MzEiIHN0cm9rZT0iIzNkNGY2NiIgc3Ryb2tlLXdpZHRoPSIxLjQiIHN0cm9rZS1kYXNoYXJyYXk9IjUgNSIvPgo8dGV4dCB4PSIyNiIgeT0iNTQiIHN0eWxlPSJmb250OiA3MDAgMTBweCBJbnRlciwgc2Fucy1zZXJpZjsgbGV0dGVyLXNwYWNpbmc6IDEuM3B4OyBmaWxsOiAjOTRhM2I4OyBmaWxsOiAjOTBkZWM4Ij5PTiBPQ0k8L3RleHQ+CjxyZWN0IHg9IjI2IiB5PSI4OCIgd2lkdGg9IjEyOCIgaGVpZ2h0PSIxMTIiIHJ4PSIxMiIgZmlsbD0iIzI2MjYyNiIgc3Ryb2tlPSIjM2Q0ZTY2IiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8dGV4dCB4PSI5MCIgeT0iMTI2IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNjUwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogI2M5Y2VkODsgZm9udC1zaXplOjEzcHgiPllvdXIgYXBwPC90ZXh0Pgo8dGV4dCB4PSI5MCIgeT0iMTQ1IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogI2M5Y2ZkOCI+TW9uZ29EQiBkcml2ZXI8L3RleHQ+Cjx0ZXh0IHg9IjkwIiB5PSIxNjIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2MDAgMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzkwZGVjNiI+dW5jaGFuZ2VkPC90ZXh0Pgo8dGV4dCB4PSIyMDAiIHk9IjgyIiBzdHlsZT0iZm9udDogNzAwIDEwcHggSW50ZXIsIHNhbnMtc2VyaWY7IGxldHRlci1zcGFjaW5nOiAxLjNweDsgZmlsbDogIzk0YTNiODsgZmlsbDogIzkwZGVjOCI+REFUQUJBU0UgUkVRVUVTVFMgwrcgRElSRUNUIENPTk5FQ1RJT048L3RleHQ+CjxsaW5lIHgxPSIxNTQiIHkxPSIxMDgiIHgyPSI2MTAiIHkyPSIxMDgiIHN0cm9rZT0iIzA1OTY2OSIgc3Ryb2tlLXdpZHRoPSIyLjIiIG1hcmtlci1lbmQ9InVybCgjYWhkLWF1dG9ub21vdXMtanNvbi1kYXRhYmFzZSkiLz4KPHRleHQgeD0iMzgyIiB5PSIxMDAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMHB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjYzljZmQ4OyBmaWxsOiAjOTBkZWM4Ij5Nb25nb0RCIHdpcmUgcHJvdG9jb2w8L3RleHQ+CjxyZWN0IHg9IjYxNCIgeT0iNzYiIHdpZHRoPSIxOTYiIGhlaWdodD0iNjQiIHJ4PSIxMiIgZmlsbD0iIzI2MjYyNiIgc3Ryb2tlPSIjM2Q0ZTY2IiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8dGV4dCB4PSI3MTIiIHk9IjEwMyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDY1MCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNjOWNlZDg7IGZvbnQtc2l6ZToxMnB4Ij5BdXRvbm9tb3VzIEpTT04gRGF0YWJhc2U8L3RleHQ+Cjx0ZXh0IHg9IjcxMiIgeT0iMTIyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogI2M5Y2ZkOCI+T3JhY2xlIEFQSSBmb3IgTW9uZ29EQjwvdGV4dD4KPHRleHQgeD0iMjAwIiB5PSIxNTgiIHN0eWxlPSJmb250OiA3MDAgMTBweCBJbnRlciwgc2Fucy1zZXJpZjsgbGV0dGVyLXNwYWNpbmc6IDEuM3B4OyBmaWxsOiAjOTRhM2I4Ij5NQU5BR0VNRU5UIFJFUVVFU1RTIMK3IFZJQSBURU5TT1I5PC90ZXh0Pgo8bGluZSB4MT0iMTU0IiB5MT0iMTk2IiB4Mj0iMzAwIiB5Mj0iMTk2IiBzdHJva2U9IiM0MTRlNjIiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNhaGQtYXV0b25vbW91cy1qc29uLWRhdGFiYXNlKSIvPgo8dGV4dCB4PSIyMjciIHk9IjE4OCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwcHggJ1NGIE1vbm8nLCB1aS1tb25vc3BhY2UsICdKZXRCcmFpbnMgTW9ubycsIE1lbmxvLCBtb25vc3BhY2U7IGZpbGw6ICNjOWNmZDgiPkRvY3VtZW50REIgQVBJPC90ZXh0Pgo8cmVjdCB4PSIzMDQiIHk9IjE2NCIgd2lkdGg9IjE4MCIgaGVpZ2h0PSI2NiIgcng9IjEyIiBmaWxsPSIjMWEzMTI2IiBzdHJva2U9IiMwNTk2NjkiIHN0cm9rZS13aWR0aD0iMS43Ii8+Cjx0ZXh0IHg9IjM5NCIgeT0iMTkxIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNzAwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzkwZGVjODsgZm9udC1zaXplOjEycHgiPlRlbnNvcjk8L3RleHQ+CiAgPHRleHQgeD0iMzk0IiB5PSIyMDgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMC41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM5MGRlYzgiPnNlcnZpY2UgYWRhcHRlcjwvdGV4dD4KPGxpbmUgeDE9IjQ4NCIgeTE9IjE5NiIgeDI9IjYxMCIgeTI9IjE5NiIgc3Ryb2tlPSIjNDE0ZTYyIiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgjYWhkLWF1dG9ub21vdXMtanNvbi1kYXRhYmFzZSkiLz4KPHJlY3QgeD0iNjE0IiB5PSIxNjQiIHdpZHRoPSIxOTYiIGhlaWdodD0iNjQiIHJ4PSIxMiIgZmlsbD0iIzI2MjYyNiIgc3Ryb2tlPSIjM2Q0ZTY2IiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8dGV4dCB4PSI3MTIiIHk9IjE5MSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDY1MCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNjOWNlZDg7IGZvbnQtc2l6ZToxMS41cHgiPk9DSSBtYW5hZ2VtZW50IEFQSTwvdGV4dD4KPHRleHQgeD0iNzEyIiB5PSIyMTAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZmQ4Ij50aGUgdGFyZ2V0J3MgbWFuYWdlbWVudCBBUEk8L3RleHQ+Cjwvc3ZnPg==" alt="Database requests (MongoDB wire protocol) connect directly to Autonomous JSON Database. The Tensor9 service adapter translates DocumentDB API management calls to OCI management API." />
</div>

<p className="t9-caption">Queries reach the database directly; only the management calls are translated.</p>

#### Database connections

Autonomous JSON Database serves your driver through the Oracle Database API for MongoDB, which supports a MongoDB-4.2-era protocol and executes operations on Oracle's SQL / JSON engine. Your driver connects directly using a load-balanced connection string. You can also query those collections with SQL, a feature DocumentDB does not offer. Some newer MongoDB features are missing; see the comparison table on this page.

Each target implements a different set of MongoDB features. The comparison table on this page covers transactions, change streams, lookups, text and vector search, and other features your application may use.

#### Database management

At runtime your application and operational tooling keep making the same DocumentDB calls they make today. The adapter accepts DocumentDB requests, returns DocumentDB response formats, and performs supported operations on OCI: backups and point-in-time recovery within the retention window, stop / start, and online compute and storage scaling. The operations OCI has no counterpart for are listed under Limitations. Each returns an error.

When your product is deployed into the customer environment, Tensor9 compiles the cluster your stack already declares into the equivalent Oracle Autonomous JSON Database resources and sets the connection string and credentials into your application's configuration. The control-plane adapter then covers the management calls your running system makes.

<div className="t9-diagram-scroll" role="region" aria-label="Scrollable diagram" tabIndex={0}>
  <img className="t9-diagram-light" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMTk2IiB2aWV3Qm94PSIwIDAgODM2IDE5NiIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJUaGUgVGVuc29yOSBzZXJ2aWNlIGFkYXB0ZXIgaGFuZGxlcyBEb2N1bWVudERCIG1hbmFnZW1lbnQgcmVxdWVzdHMgdXNpbmcgT0NJIG1hbmFnZW1lbnQgQVBJIGFuZCByZXR1cm5zIERvY3VtZW50REIgcmVzcG9uc2VzLiI+PHN0eWxlPnRleHR7Zm9udC1mYW1pbHk6SW50ZXIsLWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsJ1NlZ29lIFVJJyxSb2JvdG8sJ0hlbHZldGljYSBOZXVlJyxBcmlhbCxzYW5zLXNlcmlmO2ZpbGw6IzMzNDE1NX08L3N0eWxlPgo8ZGVmcz48bWFya2VyIGlkPSJhaGMtZG9jdW1lbnRkYi1vY2ktbWFuYWdlbWVudC1hcGkiIHZpZXdCb3g9IjAgMCAxMCAxMCIgcmVmWD0iOCIgcmVmWT0iNSIgbWFya2VyV2lkdGg9IjciIG1hcmtlckhlaWdodD0iNyIgb3JpZW50PSJhdXRvLXN0YXJ0LXJldmVyc2UiPjxwYXRoIGQ9Ik0wLDAgTDEwLDUgTDAsMTAgeiIgZmlsbD0iIzk0YTNiOCIvPjwvbWFya2VyPjwvZGVmcz4KPHJlY3QgeD0iMTYiIHk9IjM0IiB3aWR0aD0iMjM2IiBoZWlnaHQ9IjEyOCIgcng9IjEyIiBmaWxsPSIjZmZmIiBzdHJva2U9IiNlMmU4ZjAiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjEzNCIgeT0iNjAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2NTAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMGYxNzJhOyBmb250LXNpemU6MTIuNXB4Ij5Eb2N1bWVudERCIG1hbmFnZW1lbnQgY2FsbDwvdGV4dD4KPHRleHQgeD0iMTM0IiB5PSI4MiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM2NDc0OGIiPnNuYXBzaG90IMK3IHBvaW50LWluLXRpbWUgcmVzdG9yZTwvdGV4dD4KPHRleHQgeD0iMTM0IiB5PSI5OSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM2NDc0OGIiPnJlcGxpY2EgwrcgZmFpbG92ZXIgwrcgZ2xvYmFsIGNsdXN0ZXI8L3RleHQ+Cjx0ZXh0IHg9IjEzNCIgeT0iMTE2IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzY0NzQ4YiI+c3RvcCAvIHN0YXJ0IMK3IHBhcmFtZXRlcnM8L3RleHQ+Cjx0ZXh0IHg9IjEzNCIgeT0iMTQyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTBweCAnU0YgTW9ubycsIHVpLW1vbm9zcGFjZSwgJ0pldEJyYWlucyBNb25vJywgTWVubG8sIG1vbm9zcGFjZTsgZmlsbDogIzY0NzQ4YiI+c2FtZSByZXF1ZXN0IC8gcmVzcG9uc2Ugc2hhcGVzPC90ZXh0Pgo8bGluZSB4MT0iMjUyIiB5MT0iNzQiIHgyPSIzMTQiIHkyPSI3NCIgc3Ryb2tlPSIjOTRhM2I4IiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgjYWhjLWRvY3VtZW50ZGItb2NpLW1hbmFnZW1lbnQtYXBpKSIvPgo8bGluZSB4MT0iMzE4IiB5MT0iMTI4IiB4Mj0iMjU2IiB5Mj0iMTI4IiBzdHJva2U9IiM5NGEzYjgiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNhaGMtZG9jdW1lbnRkYi1vY2ktbWFuYWdlbWVudC1hcGkpIi8+CjxyZWN0IHg9IjMxOCIgeT0iNTQiIHdpZHRoPSIyMDQiIGhlaWdodD0iODgiIHJ4PSIxMiIgZmlsbD0iI2VjZmRmNSIgc3Ryb2tlPSIjMDU5NjY5IiBzdHJva2Utd2lkdGg9IjEuNyIvPgo8dGV4dCB4PSI0MjAiIHk9Ijk0IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNzAwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzA0Nzg1NzsgZm9udC1zaXplOjEycHgiPlRlbnNvcjk8L3RleHQ+CiAgPHRleHQgeD0iNDIwIiB5PSIxMTIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMC41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICMwNDc4NTciPnNlcnZpY2UgYWRhcHRlcjwvdGV4dD4KPGxpbmUgeDE9IjUyMiIgeTE9Ijc0IiB4Mj0iNTg0IiB5Mj0iNzQiIHN0cm9rZT0iIzk0YTNiOCIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2FoYy1kb2N1bWVudGRiLW9jaS1tYW5hZ2VtZW50LWFwaSkiLz4KPGxpbmUgeDE9IjU4OCIgeTE9IjEyOCIgeDI9IjUyNiIgeTI9IjEyOCIgc3Ryb2tlPSIjOTRhM2I4IiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgjYWhjLWRvY3VtZW50ZGItb2NpLW1hbmFnZW1lbnQtYXBpKSIvPgo8cmVjdCB4PSI1ODgiIHk9IjM0IiB3aWR0aD0iMjMyIiBoZWlnaHQ9IjEyOCIgcng9IjEyIiBmaWxsPSIjZmZmIiBzdHJva2U9IiNlMmU4ZjAiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjcwNCIgeT0iNjIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2NTAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMGYxNzJhOyBmb250LXNpemU6MTJweCI+T0NJIG1hbmFnZW1lbnQgQVBJPC90ZXh0Pgo8dGV4dCB4PSI3MDQiIHk9Ijk0IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzY0NzQ4YiI+YmFja3VwcyDCtyByZXN0b3JlIMK3IHN0b3AgLyBzdGFydDwvdGV4dD4KPHRleHQgeD0iNzA0IiB5PSIxMTEiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjNjQ3NDhiIj5jb21wdXRlIGFuZCBzdG9yYWdlIHNjYWxpbmc8L3RleHQ+Cjwvc3ZnPg==" alt="The Tensor9 service adapter handles DocumentDB management requests using OCI management API and returns DocumentDB responses." />

  <img className="t9-diagram-dark" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMTk2IiB2aWV3Qm94PSIwIDAgODM2IDE5NiIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJUaGUgVGVuc29yOSBzZXJ2aWNlIGFkYXB0ZXIgaGFuZGxlcyBEb2N1bWVudERCIG1hbmFnZW1lbnQgcmVxdWVzdHMgdXNpbmcgT0NJIG1hbmFnZW1lbnQgQVBJIGFuZCByZXR1cm5zIERvY3VtZW50REIgcmVzcG9uc2VzLiI+PHN0eWxlPnRleHR7Zm9udC1mYW1pbHk6SW50ZXIsLWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsJ1NlZ29lIFVJJyxSb2JvdG8sJ0hlbHZldGljYSBOZXVlJyxBcmlhbCxzYW5zLXNlcmlmO2ZpbGw6I2NiZDVlMX08L3N0eWxlPgo8ZGVmcz48bWFya2VyIGlkPSJhaGMtZG9jdW1lbnRkYi1vY2ktbWFuYWdlbWVudC1hcGkiIHZpZXdCb3g9IjAgMCAxMCAxMCIgcmVmWD0iOCIgcmVmWT0iNSIgbWFya2VyV2lkdGg9IjciIG1hcmtlckhlaWdodD0iNyIgb3JpZW50PSJhdXRvLXN0YXJ0LXJldmVyc2UiPjxwYXRoIGQ9Ik0wLDAgTDEwLDUgTDAsMTAgeiIgZmlsbD0iIzk0YTNiOCIvPjwvbWFya2VyPjwvZGVmcz4KPHJlY3QgeD0iMTYiIHk9IjM0IiB3aWR0aD0iMjM2IiBoZWlnaHQ9IjEyOCIgcng9IjEyIiBmaWxsPSIjMjYyNjI2IiBzdHJva2U9IiMzZDRlNjYiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjEzNCIgeT0iNjAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2NTAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZWQ4OyBmb250LXNpemU6MTIuNXB4Ij5Eb2N1bWVudERCIG1hbmFnZW1lbnQgY2FsbDwvdGV4dD4KPHRleHQgeD0iMTM0IiB5PSI4MiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNjOWNmZDgiPnNuYXBzaG90IMK3IHBvaW50LWluLXRpbWUgcmVzdG9yZTwvdGV4dD4KPHRleHQgeD0iMTM0IiB5PSI5OSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNjOWNmZDgiPnJlcGxpY2EgwrcgZmFpbG92ZXIgwrcgZ2xvYmFsIGNsdXN0ZXI8L3RleHQ+Cjx0ZXh0IHg9IjEzNCIgeT0iMTE2IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogI2M5Y2ZkOCI+c3RvcCAvIHN0YXJ0IMK3IHBhcmFtZXRlcnM8L3RleHQ+Cjx0ZXh0IHg9IjEzNCIgeT0iMTQyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTBweCAnU0YgTW9ubycsIHVpLW1vbm9zcGFjZSwgJ0pldEJyYWlucyBNb25vJywgTWVubG8sIG1vbm9zcGFjZTsgZmlsbDogI2M5Y2ZkOCI+c2FtZSByZXF1ZXN0IC8gcmVzcG9uc2Ugc2hhcGVzPC90ZXh0Pgo8bGluZSB4MT0iMjUyIiB5MT0iNzQiIHgyPSIzMTQiIHkyPSI3NCIgc3Ryb2tlPSIjNDE0ZTYyIiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgjYWhjLWRvY3VtZW50ZGItb2NpLW1hbmFnZW1lbnQtYXBpKSIvPgo8bGluZSB4MT0iMzE4IiB5MT0iMTI4IiB4Mj0iMjU2IiB5Mj0iMTI4IiBzdHJva2U9IiM0MTRlNjIiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNhaGMtZG9jdW1lbnRkYi1vY2ktbWFuYWdlbWVudC1hcGkpIi8+CjxyZWN0IHg9IjMxOCIgeT0iNTQiIHdpZHRoPSIyMDQiIGhlaWdodD0iODgiIHJ4PSIxMiIgZmlsbD0iIzFhMzEyNiIgc3Ryb2tlPSIjMDU5NjY5IiBzdHJva2Utd2lkdGg9IjEuNyIvPgo8dGV4dCB4PSI0MjAiIHk9Ijk0IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNzAwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzkwZGVjODsgZm9udC1zaXplOjEycHgiPlRlbnNvcjk8L3RleHQ+CiAgPHRleHQgeD0iNDIwIiB5PSIxMTIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMC41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM5MGRlYzgiPnNlcnZpY2UgYWRhcHRlcjwvdGV4dD4KPGxpbmUgeDE9IjUyMiIgeTE9Ijc0IiB4Mj0iNTg0IiB5Mj0iNzQiIHN0cm9rZT0iIzQxNGU2MiIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2FoYy1kb2N1bWVudGRiLW9jaS1tYW5hZ2VtZW50LWFwaSkiLz4KPGxpbmUgeDE9IjU4OCIgeTE9IjEyOCIgeDI9IjUyNiIgeTI9IjEyOCIgc3Ryb2tlPSIjNDE0ZTYyIiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgjYWhjLWRvY3VtZW50ZGItb2NpLW1hbmFnZW1lbnQtYXBpKSIvPgo8cmVjdCB4PSI1ODgiIHk9IjM0IiB3aWR0aD0iMjMyIiBoZWlnaHQ9IjEyOCIgcng9IjEyIiBmaWxsPSIjMjYyNjI2IiBzdHJva2U9IiMzZDRlNjYiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjcwNCIgeT0iNjIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2NTAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZWQ4OyBmb250LXNpemU6MTJweCI+T0NJIG1hbmFnZW1lbnQgQVBJPC90ZXh0Pgo8dGV4dCB4PSI3MDQiIHk9Ijk0IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogI2M5Y2ZkOCI+YmFja3VwcyDCtyByZXN0b3JlIMK3IHN0b3AgLyBzdGFydDwvdGV4dD4KPHRleHQgeD0iNzA0IiB5PSIxMTEiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZmQ4Ij5jb21wdXRlIGFuZCBzdG9yYWdlIHNjYWxpbmc8L3RleHQ+Cjwvc3ZnPg==" alt="The Tensor9 service adapter handles DocumentDB management requests using OCI management API and returns DocumentDB responses." />
</div>

<p className="t9-caption">Tensor9 translates DocumentDB management requests to the target API and returns DocumentDB responses.</p>

#### Limitations

△ Where DocumentDB and Autonomous JSON Database stay different

* **No manual failover and no cross-region standby.** Autonomous Data Guard is not available for JSON workloads, so there is no failover / switchover call and no global database; cross-region DR is backup copies, refreshable clones, or replication tooling.
* **No replica instances.** Read scale-out is served by compute auto-scaling (up to 3x), not replicas you add.
* **Most cluster settings have no equivalent.** Compute and storage scale online; most DocumentDB cluster parameters have no counterpart.
* **Event subscriptions are not served.** DocumentDB event notifications publish to SNS; OCI Events is a different model with no direct counterpart.

#### Other considerations

**Migration.** Copy existing data with MongoDB migration tools that the target supports. Check the workload's queries, indexes, and BSON types against the comparison table before switching connections; sharing a wire protocol does not make every MongoDB feature equivalent.

**Operations.** The customer owns the Autonomous Database in their OCI tenancy: maintenance windows, quotas, and pricing are Oracle's.

**Features and capacity.** The comparison table on this page lists database features and high-availability differences. Check the target service's pricing and capacity limits when sizing the deployment.

[Service Catalog](/service-adapters/catalog).
