diff --git a/docs/sdk_rg_seq_diagram.md b/docs/sdk_rg_seq_diagram.md
new file mode 100644
index 0000000000..c4d656af13
--- /dev/null
+++ b/docs/sdk_rg_seq_diagram.md
@@ -0,0 +1,359 @@
+# Sequence Diagram for .NET v3 SDK and Gateway Interactions
+
+## Table of Contents
+
+* [Scope.](#scope)
+* [Sequence Diagram to Read Database and Collection Information.](#sequence-diagram-to-read-database-and-collection-information)
+ * [Sample Response from Gateway for `Get Accounts` Information.](#sample-response-from-gateway-for-get-accounts-information)
+ * [Sample Response from Gateway for `Read Collection` Information.](#sample-response-from-gateway-for-read-collection-information)
+* [Sequence Diagram to Read PkRange and Address Information.](#sequence-diagram-to-read-pkRange-and-address-information)
+ * [Sample Response from Gateway for `Get PkRange` Information.](#sample-response-from-gateway-for-get-pkrange-information)
+ * [Sample Response from Gateway for `Get Addresses` Information.](#sample-response-from-gateway-for-get-addresses-information)
+
+## Scope
+
+The scope of this sequence diagram is to capture the compute/ routing gateway interactions with the `CosmosClient` configured in `Direct` mode.
+
+## Sequence Diagram to Read Database and Collection Information.
+
+```mermaid
+sequenceDiagram
+ participant A as Cosmos .NET
v3 SDK
+ participant B as GatewayAccountReader
[v3 Code]
+ participant C as ClientCollectionCache
[v3 Code]
+ participant D as PartitionKeyRangeCache
[v3 Code]
+ participant E as GatewayAddressCache
[v3 Code]
+ participant F as GatewayStoreModel
[v3 Code]
+ participant G as CosmosHttpClient
[v3 Code]
+ participant H as Routing Gateway
[Deployed on each Region]
+ A->>B: Get Database
Account
+ B->>G: HttpRequestMessage
(ResourceType = DatabaseAccount)
+ G->>H: HttpRequestMessage
(ResourceType = DatabaseAccount)
+ H-->>G: DatabaseAccount
Metadata Properties
+ G-->>B: DatabaseAccount
Metadata Properties
+ B-->>A: DatabaseAccount
Metadata Properties
+ A->>C: Read Collection
Information
+ C->>F: DocumentServiceRequest
(OperationType = Read)
(ResourceType = Collection)
+ F->>G: DocumentServiceRequest
+ G->>H: HttpRequestMessage
(ResourceType = Collection)
+ H-->>G: Collection
Metadata Information
+ G-->>F: Collection
Metadata Information
+ F-->>C: Collection
Metadata Information
+ C-->>A: Collection
Metadata Information
+```
+
+### Sample Response from Gateway for `Get Accounts` Information.
+
+```json
+{
+ "id": "sdk-ppaf-test",
+ "_rid": "sdk-ppaf-test.documents-test.windows-int.net",
+ "writableLocations": [
+ {
+ "name": "North Central US",
+ "databaseAccountEndpoint": "https://sdk-ppaf-test-northcentralus.documents-test.windows-int.net:443/"
+ }
+ ],
+ "readableLocations": [
+ {
+ "name": "North Central US",
+ "databaseAccountEndpoint": "https://sdk-ppaf-test-northcentralus.documents-test.windows-int.net:443/"
+ },
+ {
+ "name": "East Asia",
+ "databaseAccountEndpoint": "https://sdk-ppaf-test-eastasia.documents-test.windows-int.net:443/"
+ },
+ {
+ "name": "West US",
+ "databaseAccountEndpoint": "https://sdk-ppaf-test-westus.documents-test.windows-int.net:443/"
+ }
+ ],
+ "userConsistencyPolicy": {
+ "defaultConsistencyLevel": "Strong",
+ "maxStalenessPrefix": 0,
+ "maxIntervalInSeconds": 0
+ },
+ "addresses": "//addresses/",
+ "userReplicationPolicy": {
+ "MaxReplicaSetSize": 4,
+ "MinReplicaSetSize": 2,
+ "AsyncReplication": false
+ },
+ "systemReplicationPolicy": {
+ "MaxReplicaSetSize": 4,
+ "MinReplicaSetSize": 3,
+ "AsyncReplication": false
+ },
+ "readPolicy": {
+ "primaryReadCoefficient": 1,
+ "secondaryReadCoefficient": 1
+ },
+ "queryEngineConfiguration": "{\"allowNewKeywords\":true,\"maxJoinsPerSqlQuery\":10,\"maxQueryRequestTimeoutFraction\":0.9,\"maxSqlQueryInputLength\":524288,\"maxUdfRefPerSqlQuery\":10,\"queryMaxInMemorySortDocumentCount\":-1000,\"spatialMaxGeometryPointCount\":256,\"sqlAllowNonFiniteNumbers\":false,\"sqlDisableOptimizationFlags\":0,\"clientDisableOptimisticDirectExecution\":false,\"enableSpatialIndexing\":true,\"maxInExpressionItemsCount\":2147483647,\"maxLogicalAndPerSqlQuery\":2147483647,\"maxLogicalOrPerSqlQuery\":2147483647,\"maxSpatialQueryCells\":2147483647,\"sqlAllowAggregateFunctions\":true,\"sqlAllowGroupByClause\":true,\"sqlAllowLike\":true,\"sqlAllowSubQuery\":true,\"sqlAllowScalarSubQuery\":true,\"sqlAllowTop\":true}",
+ "enableMultipleWriteLocations": false,
+ "_self": "",
+ "media": "//media/",
+ "_dbs": "//dbs/"
+}
+```
+
+### Sample Response from Gateway for `Read Collection` Information.
+
+To serve the `Read Collection` calls, the routing gateway will read from all the server partitions, if [some specific set of headers (for e.g. quota information)](https://msdata.visualstudio.com/CosmosDB/_git/CosmosDB?path=/Product/Microsoft.Azure.Documents/Common/FabricServiceManagement/CollectionReadHandler.cs&version=GBmaster&line=171&lineEnd=281&lineStartColumn=1&lineEndColumn=1&lineStyle=plain&_a=contents) are present/ populated in the request headers. If those headers are missing, the routing gateway will read from the tail partition.
+
+For reference, a tail partition is the last partition in the pk ranges. There are multiple server partition in a cosmos db account, under a cosmos db collection, and the last pk range ID in the range, uniquely identifies the tail partition. Tail partitions is scoped to a collection level.
+
+The routing gateway will also read from the master partition for `Read Collection` calls.
+
+```json
+{
+ "indexingPolicy": {
+ "automatic": true,
+ "indexingMode": "Consistent",
+ "includedPaths": [
+ {
+ "path": "/*",
+ "indexes": []
+ }
+ ],
+ "excludedPaths": [
+ {
+ "path": "/\"_etag\"/?"
+ }
+ ],
+ "compositeIndexes": [],
+ "spatialIndexes": []
+ },
+ "geospatialConfig": {
+ "type": "Geography"
+ },
+ "conflictResolutionPolicy": {
+ "mode": "LastWriterWins",
+ "conflictResolutionPath": "/_ts",
+ "conflictResolutionProcedure": ""
+ },
+ "id": "ppaf-test-container",
+ "_etag": "\"00000200-0000-0400-0000-65badb2a0000\"",
+ "_ts": 1706744618,
+ "_self": "dbs/TlcF6g==/colls/TlcF6sFVtrM=/",
+ "partitionKey": {
+ "paths": [
+ "/pk"
+ ],
+ "kind": "Hash"
+ },
+ "_rid": "TlcF6sFVtrM=",
+ "_docs": "docs/",
+ "_sprocs": "sprocs/",
+ "_triggers": "triggers/",
+ "_udfs": "udfs/",
+ "_conflicts": "conflicts/"
+}
+```
+
+## Sequence Diagram to Read PkRange and Address Information.
+
+```mermaid
+sequenceDiagram
+ participant A as Cosmos .NET
v3 SDK
+ participant B as GatewayAccountReader
[v3 Code]
+ participant C as ClientCollectionCache
[v3 Code]
+ participant D as PartitionKeyRangeCache
[v3 Code]
+ participant E as GatewayAddressCache
[v3 Code]
+ participant F as GatewayStoreModel
[v3 Code]
+ participant G as CosmosHttpClient
[v3 Code]
+ participant H as Routing Gateway
[Deployed on each Region]
+ A->>D: Get PkRange Call
+ D->>F: DocumentServiceRequest
(OperationType = ReadFeed)
(ResourceType = PartitionKeyRange)
+ F->>G: DocumentServiceRequest
+ G->>H: HttpRequestMessage
(ResourceType = PartitionKeyRange)
+ H-->>G: PartitionKeyRange
Metadata Information
+ G-->>F: PartitionKeyRange
Metadata Information
+ F-->>D: PartitionKeyRange
Metadata Information
+ D-->>A: PartitionKeyRange
Metadata Information
+ A->>E: Get Address
Information
+ E->>F: DocumentServiceRequest
(OperationType = Read)
(ResourceType = Address)
+ F->>G: DocumentServiceRequest
+ G->>H: HttpRequestMessage
(ResourceType = Address)
+ H-->>G: Partition Address
Metadata Information
+ G-->>F: Partition Address
Metadata Information
+ F-->>E: Partition Address
Metadata Information
+ E-->>A: Partition Address
Metadata Information
+```
+
+
+### Sample Response from Gateway for `Get PkRange` Information.
+
+The cosmos container (collection) used for the below example, contains `9` server partitions. Therefore, the `Get PkRange` call returns total `9` Pk ranges to uniquely identify each server partition.
+
+```json
+{
+ "pkRanges": [
+ {
+ "minInclusive": "",
+ "maxExclusive": "05C1BD3971E3C0",
+ "ridPrefix": 0,
+ "throughputFraction": 0.1111111111111111,
+ "status": "online",
+ "lsn": 28,
+ "parents": [],
+ "id": "0",
+ "_rid": "TlcF6sFVtrMCAAAAAAAAUA==",
+ "_self": "dbs/TlcF6g==/colls/TlcF6sFVtrM=/pkranges/TlcF6sFVtrMCAAAAAAAAUA==/",
+ "_ts": 1706744618,
+ "_etag": "\"00000400-0000-0400-0000-65badb2a0000\""
+ },
+ {
+ "minInclusive": "05C1BD3971E3C0",
+ "maxExclusive": "05C1CD3971E3C0",
+ "ridPrefix": 1,
+ "throughputFraction": 0.1111111111111111,
+ "status": "online",
+ "lsn": 28,
+ "parents": [],
+ "id": "1",
+ "_rid": "TlcF6sFVtrMDAAAAAAAAUA==",
+ "_self": "dbs/TlcF6g==/colls/TlcF6sFVtrM=/pkranges/TlcF6sFVtrMDAAAAAAAAUA==/",
+ "_ts": 1706744618,
+ "_etag": "\"00000500-0000-0400-0000-65badb2a0000\""
+ },
+ {
+ "minInclusive": "05C1CD3971E3C0",
+ "maxExclusive": "05C1D5AB55AB50",
+ "ridPrefix": 2,
+ "throughputFraction": 0.1111111111111111,
+ "status": "online",
+ "lsn": 28,
+ "parents": [],
+ "id": "2",
+ "_rid": "TlcF6sFVtrMEAAAAAAAAUA==",
+ "_self": "dbs/TlcF6g==/colls/TlcF6sFVtrM=/pkranges/TlcF6sFVtrMEAAAAAAAAUA==/",
+ "_ts": 1706744618,
+ "_etag": "\"00000600-0000-0400-0000-65badb2a0000\""
+ },
+ {
+ "minInclusive": "05C1D5AB55AB50",
+ "maxExclusive": "05C1DD3971E3C0",
+ "ridPrefix": 3,
+ "throughputFraction": 0.1111111111111111,
+ "status": "online",
+ "lsn": 28,
+ "parents": [],
+ "id": "3",
+ "_rid": "TlcF6sFVtrMFAAAAAAAAUA==",
+ "_self": "dbs/TlcF6g==/colls/TlcF6sFVtrM=/pkranges/TlcF6sFVtrMFAAAAAAAAUA==/",
+ "_ts": 1706744618,
+ "_etag": "\"00000700-0000-0400-0000-65badb2a0000\""
+ },
+ {
+ "minInclusive": "05C1DD3971E3C0",
+ "maxExclusive": "05C1E1E3C78F18",
+ "ridPrefix": 4,
+ "throughputFraction": 0.1111111111111111,
+ "status": "online",
+ "lsn": 28,
+ "parents": [],
+ "id": "4",
+ "_rid": "TlcF6sFVtrMGAAAAAAAAUA==",
+ "_self": "dbs/TlcF6g==/colls/TlcF6sFVtrM=/pkranges/TlcF6sFVtrMGAAAAAAAAUA==/",
+ "_ts": 1706744618,
+ "_etag": "\"00000800-0000-0400-0000-65badb2a0000\""
+ },
+ {
+ "minInclusive": "05C1E1E3C78F18",
+ "maxExclusive": "05C1E5AB55AB50",
+ "ridPrefix": 5,
+ "throughputFraction": 0.1111111111111111,
+ "status": "online",
+ "lsn": 28,
+ "parents": [],
+ "id": "5",
+ "_rid": "TlcF6sFVtrMHAAAAAAAAUA==",
+ "_self": "dbs/TlcF6g==/colls/TlcF6sFVtrM=/pkranges/TlcF6sFVtrMHAAAAAAAAUA==/",
+ "_ts": 1706744618,
+ "_etag": "\"00000900-0000-0400-0000-65badb2a0000\""
+ },
+ {
+ "minInclusive": "05C1E5AB55AB50",
+ "maxExclusive": "05C1E971E3C788",
+ "ridPrefix": 6,
+ "throughputFraction": 0.1111111111111111,
+ "status": "online",
+ "lsn": 28,
+ "parents": [],
+ "id": "6",
+ "_rid": "TlcF6sFVtrMIAAAAAAAAUA==",
+ "_self": "dbs/TlcF6g==/colls/TlcF6sFVtrM=/pkranges/TlcF6sFVtrMIAAAAAAAAUA==/",
+ "_ts": 1706744618,
+ "_etag": "\"00000a00-0000-0400-0000-65badb2a0000\""
+ },
+ {
+ "minInclusive": "05C1E971E3C788",
+ "maxExclusive": "05C1ED3971E3C0",
+ "ridPrefix": 7,
+ "throughputFraction": 0.1111111111111111,
+ "status": "online",
+ "lsn": 28,
+ "parents": [],
+ "id": "7",
+ "_rid": "TlcF6sFVtrMJAAAAAAAAUA==",
+ "_self": "dbs/TlcF6g==/colls/TlcF6sFVtrM=/pkranges/TlcF6sFVtrMJAAAAAAAAUA==/",
+ "_ts": 1706744618,
+ "_etag": "\"00000b00-0000-0400-0000-65badb2a0000\""
+ },
+ {
+ "minInclusive": "05C1ED3971E3C0",
+ "maxExclusive": "FF",
+ "ridPrefix": 8,
+ "throughputFraction": 0.1111111111111111,
+ "status": "online",
+ "lsn": 28,
+ "parents": [],
+ "id": "8",
+ "_rid": "TlcF6sFVtrMKAAAAAAAAUA==",
+ "_self": "dbs/TlcF6g==/colls/TlcF6sFVtrM=/pkranges/TlcF6sFVtrMKAAAAAAAAUA==/",
+ "_ts": 1706744618,
+ "_etag": "\"00000c00-0000-0400-0000-65badb2a0000\""
+ }
+ ]
+}
+```
+
+### Sample Response from Gateway for `Get Addresses` Information.
+
+```json
+{
+ "key": {
+ "CollectionRid": "TlcF6sFVtrM=",
+ "PartitionKeyRangeId": "1"
+ },
+ "value": {
+ "AllAddresses": [
+ {
+ "IsPublic": true,
+ "IsPrimary": true,
+ "Protocol": 1,
+ "PhysicalUri": "rntbd://cdb-ms-test14-northcentralus1-fd1.documents-test.windows-int.net:14007/apps/cd689600-3fde-4884-80f5-99b8ae4658c6/services/c54dcf72-965b-4e63-8393-9c26df3c561e/partitions/fb652146-249c-41ed-9007-16a1d8e5719b/replicas/133506394588861615p/"
+ },
+ {
+ "IsPublic": true,
+ "IsPrimary": false,
+ "Protocol": 1,
+ "PhysicalUri": "rntbd://cdb-ms-test14-northcentralus1-fd1.documents-test.windows-int.net:14005/apps/cd689600-3fde-4884-80f5-99b8ae4658c6/services/c54dcf72-965b-4e63-8393-9c26df3c561e/partitions/fb652146-249c-41ed-9007-16a1d8e5719b/replicas/133506394588861614s/"
+ },
+ {
+ "IsPublic": true,
+ "IsPrimary": false,
+ "Protocol": 1,
+ "PhysicalUri": "rntbd://cdb-ms-test14-northcentralus1-fd1.documents-test.windows-int.net:14309/apps/cd689600-3fde-4884-80f5-99b8ae4658c6/services/c54dcf72-965b-4e63-8393-9c26df3c561e/partitions/fb652146-249c-41ed-9007-16a1d8e5719b/replicas/133510641263874891s/"
+ },
+ {
+ "IsPublic": true,
+ "IsPrimary": false,
+ "Protocol": 1,
+ "PhysicalUri": "rntbd://cdb-ms-test14-northcentralus1-fd1.documents-test.windows-int.net:14310/apps/cd689600-3fde-4884-80f5-99b8ae4658c6/services/c54dcf72-965b-4e63-8393-9c26df3c561e/partitions/fb652146-249c-41ed-9007-16a1d8e5719b/replicas/133506394588861613s/"
+ }
+ ],
+ "IsLocalRegion": false
+ }
+}
+```
\ No newline at end of file