[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-azure-documentdb-high-availability":3,"mdc--7b0f9m-key":35,"related-org-azure-documentdb-high-availability":697,"related-repo-azure-documentdb-high-availability":876},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":12,"stars":24,"repoUrl":25,"updatedAt":26,"license":27,"forks":28,"topics":29,"repo":30,"sourceUrl":33,"mdContent":34},"documentdb-high-availability","configure high availability for DocumentDB","High availability, business-continuity, and disaster-recovery best practices for Azure DocumentDB — enabling in-region HA with availability zones (99.99% SLA), adding active-passive cross-region replica clusters (99.995% SLA), and understanding automatic backup retention. Use when designing production topology, planning failover, provisioning DR, picking regions, or reviewing cluster architecture.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},"azure","Azure (Microsoft)","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fazure.png","Azure",[13,17,20,21],{"name":14,"slug":15,"type":16},"Performance","performance","tag",{"name":18,"slug":19,"type":16},"Operations","operations",{"name":11,"slug":8,"type":16},{"name":22,"slug":23,"type":16},"Database","database",5,"https:\u002F\u002Fgithub.com\u002FAzure\u002Fdocumentdb-agent-kit","2026-07-12T08:18:53.654505","MIT",7,[],{"repoUrl":25,"stars":24,"forks":28,"topics":31,"description":32},[],"Agent Skills pack for Azure DocumentDB (MongoDB compatibility) - vector search, full-text search, query optimization, connection tuning, local deployment, security, HA, and MCP setup.","https:\u002F\u002Fgithub.com\u002FAzure\u002Fdocumentdb-agent-kit\u002Ftree\u002FHEAD\u002Fskills\u002Fhigh-availability","---\nname: documentdb-high-availability\ndescription: High availability, business-continuity, and disaster-recovery best practices for Azure DocumentDB — enabling in-region HA with availability zones (99.99% SLA), adding active-passive cross-region replica clusters (99.995% SLA), and understanding automatic backup retention. Use when designing production topology, planning failover, provisioning DR, picking regions, or reviewing cluster architecture.\nlicense: MIT\n---\n\n# High Availability, Replication & DR — Azure DocumentDB\n\nAzure DocumentDB's resiliency model has three layers. Pick the right combination for the workload — production-critical workloads should use all three.\n\n| Layer | What it protects against | SLA contribution | Automatic? |\n|---|---|---|---|\n| **In-region HA** (standby shard per primary, synchronous replication) | Node \u002F zone failures within a region | 99.99% | ✅ Failover is automatic; connection string is unchanged |\n| **Cross-region replica** (active-passive, asynchronous) | Regional outage; provides read scale-out | + 0.005% → **99.995%** combined | ❌ Promotion is **customer-triggered** (shared-responsibility DR); HA must be re-enabled on the promoted cluster |\n| **Automatic backups** (35 d active \u002F 7 d deleted clusters) | Accidental deletion or corruption | — | ✅ Continuous, no perf impact |\n\n## Replication model at a glance\n\n- **Primary ↔ standby shard (in-region):** synchronous — every write commits to both before the client gets an ack, so failover is **lossless** and reads on the standby (after promotion) are strongly consistent. With HA on, each shard has **6 replicas** in total: 3 LRS replicas under the primary shard + 3 LRS replicas under the standby shard. In AZ-enabled regions the primary and standby sit in **different availability zones**.\n- **Primary cluster ↔ cross-region replica:** asynchronous — design for eventual consistency on the replica. Some writes acknowledged on the primary **may not yet** be on the replica, so regional promotion has a **non-zero RPO** (recent writes can be lost). Replication lag scales with the primary's write intensity and the load on both clusters.\n- **Without HA:** each shard uses locally-redundant storage (LRS) with 3 synchronous Azure Storage replicas. Single-replica failures are auto-healed by Azure Storage (CRC checks + network checksums protect against silent corruption), but a **zone or region failure can cause downtime and possible data loss**. HA is also a prerequisite for availability-zone placement.\n\n> Applications connect to a cluster through a **single connection string and endpoint** regardless of shard count. The multi-shard topology is fully abstracted — a 16-shard cluster looks like one MongoDB endpoint to the driver.\n\n## Feature comparison\n\nHow HA and cross-region replicas protect different failure modes:\n\n| Failure scenario | Feature | No data loss (RPO = 0) | Survives region-wide outage | Automatic failover | Connection string preserved |\n|---|---|:---:|:---:|:---:|:---:|\n| Physical shard \u002F zone failure | In-region HA | ✅ (synchronous) | ❌ | ✅ | ✅ |\n| Regional outage | Cross-region replica | ❌ (asynchronous; RPO > 0) | ✅ | ❌ (customer-triggered) | ✅ ¹ |\n\n¹ Only when the application uses the **Global read-write** connection string (`\u003Ccluster>.global.mongocluster.cosmos.azure.com`). The cluster-specific \u002F \"self\" connection string becomes read-only after promotion.\n\n## Best-practice decision matrix\n\n| Scenario | Recommendation |\n|---|---|\n| Production cluster | Enable HA |\n| Need 99.99% SLA | Enable HA |\n| Need 99.995% SLA | Enable HA **and** create a cross-region replica |\n| Automatic failover from node\u002Fzone failure | Enable HA |\n| Cross-region disaster recovery | Create a replica cluster |\n| Read scale-out within a single region (analytics \u002F reporting offload) | Create a **same-region** replica (no DR benefit; you can have only one replica per primary, so this trades cross-region DR for in-region read offload) |\n| Read scale-out across regions | Create a replica cluster |\n| Availability-zone placement required | Enable HA (HA is required for AZ support) |\n| Non-production \u002F dev-test cluster | Disable HA to reduce cost |\n| Recover from accidental delete\u002Fmodify | Automatic backups (35-day retention for active clusters) |\n\n## Rules\n\n- [ha-enable-for-production](ha-enable-for-production.md) — Enable HA on all production clusters for the 99.99% SLA, automatic failover, zone redundancy, and zero-data-loss synchronous replication.\n- [ha-cross-region-replica](ha-cross-region-replica.md) — Add an active-passive replica (cross-region for DR + read scale-out, same-region for pure read scale-out); HA + cross-region replica = 99.995% SLA. Includes the post-promotion runbook (re-enable HA, update connection strings, restore the replica).\n- [ha-backup-retention](ha-backup-retention.md) — Automatic backups are taken continuously and retained for **35 days** on active clusters and **7 days** on deleted clusters. Use them to recover from accidental deletes or modifications.\n\n## References\n\n- [Best practices for HA and cross-region replication in Azure DocumentDB](https:\u002F\u002Flearn.microsoft.com\u002Fazure\u002Fdocumentdb\u002Fhigh-availability-replication-best-practices)\n- [Reliability in Azure DocumentDB](https:\u002F\u002Flearn.microsoft.com\u002Fazure\u002Freliability\u002Freliability-documentdb)\n- [Availability and disaster recovery in Azure DocumentDB — behind the scenes](https:\u002F\u002Flearn.microsoft.com\u002Fazure\u002Fdocumentdb\u002Favailability-disaster-recovery-under-hood) — cluster anatomy, 6-replica HA layout, replication-lag drivers\n",{"data":36,"body":37},{"name":4,"description":6,"license":27},{"type":38,"children":39},"root",[40,49,55,192,199,276,292,298,303,408,429,435,598,604,655,661],{"type":41,"tag":42,"props":43,"children":45},"element","h1",{"id":44},"high-availability-replication-dr-azure-documentdb",[46],{"type":47,"value":48},"text","High Availability, Replication & DR — Azure DocumentDB",{"type":41,"tag":50,"props":51,"children":52},"p",{},[53],{"type":47,"value":54},"Azure DocumentDB's resiliency model has three layers. Pick the right combination for the workload — production-critical workloads should use all three.",{"type":41,"tag":56,"props":57,"children":58},"table",{},[59,88],{"type":41,"tag":60,"props":61,"children":62},"thead",{},[63],{"type":41,"tag":64,"props":65,"children":66},"tr",{},[67,73,78,83],{"type":41,"tag":68,"props":69,"children":70},"th",{},[71],{"type":47,"value":72},"Layer",{"type":41,"tag":68,"props":74,"children":75},{},[76],{"type":47,"value":77},"What it protects against",{"type":41,"tag":68,"props":79,"children":80},{},[81],{"type":47,"value":82},"SLA contribution",{"type":41,"tag":68,"props":84,"children":85},{},[86],{"type":47,"value":87},"Automatic?",{"type":41,"tag":89,"props":90,"children":91},"tbody",{},[92,122,164],{"type":41,"tag":64,"props":93,"children":94},{},[95,107,112,117],{"type":41,"tag":96,"props":97,"children":98},"td",{},[99,105],{"type":41,"tag":100,"props":101,"children":102},"strong",{},[103],{"type":47,"value":104},"In-region HA",{"type":47,"value":106}," (standby shard per primary, synchronous replication)",{"type":41,"tag":96,"props":108,"children":109},{},[110],{"type":47,"value":111},"Node \u002F zone failures within a region",{"type":41,"tag":96,"props":113,"children":114},{},[115],{"type":47,"value":116},"99.99%",{"type":41,"tag":96,"props":118,"children":119},{},[120],{"type":47,"value":121},"✅ Failover is automatic; connection string is unchanged",{"type":41,"tag":64,"props":123,"children":124},{},[125,135,140,152],{"type":41,"tag":96,"props":126,"children":127},{},[128,133],{"type":41,"tag":100,"props":129,"children":130},{},[131],{"type":47,"value":132},"Cross-region replica",{"type":47,"value":134}," (active-passive, asynchronous)",{"type":41,"tag":96,"props":136,"children":137},{},[138],{"type":47,"value":139},"Regional outage; provides read scale-out",{"type":41,"tag":96,"props":141,"children":142},{},[143,145,150],{"type":47,"value":144},"+ 0.005% → ",{"type":41,"tag":100,"props":146,"children":147},{},[148],{"type":47,"value":149},"99.995%",{"type":47,"value":151}," combined",{"type":41,"tag":96,"props":153,"children":154},{},[155,157,162],{"type":47,"value":156},"❌ Promotion is ",{"type":41,"tag":100,"props":158,"children":159},{},[160],{"type":47,"value":161},"customer-triggered",{"type":47,"value":163}," (shared-responsibility DR); HA must be re-enabled on the promoted cluster",{"type":41,"tag":64,"props":165,"children":166},{},[167,177,182,187],{"type":41,"tag":96,"props":168,"children":169},{},[170,175],{"type":41,"tag":100,"props":171,"children":172},{},[173],{"type":47,"value":174},"Automatic backups",{"type":47,"value":176}," (35 d active \u002F 7 d deleted clusters)",{"type":41,"tag":96,"props":178,"children":179},{},[180],{"type":47,"value":181},"Accidental deletion or corruption",{"type":41,"tag":96,"props":183,"children":184},{},[185],{"type":47,"value":186},"—",{"type":41,"tag":96,"props":188,"children":189},{},[190],{"type":47,"value":191},"✅ Continuous, no perf impact",{"type":41,"tag":193,"props":194,"children":196},"h2",{"id":195},"replication-model-at-a-glance",[197],{"type":47,"value":198},"Replication model at a glance",{"type":41,"tag":200,"props":201,"children":202},"ul",{},[203,235,259],{"type":41,"tag":204,"props":205,"children":206},"li",{},[207,212,214,219,221,226,228,233],{"type":41,"tag":100,"props":208,"children":209},{},[210],{"type":47,"value":211},"Primary ↔ standby shard (in-region):",{"type":47,"value":213}," synchronous — every write commits to both before the client gets an ack, so failover is ",{"type":41,"tag":100,"props":215,"children":216},{},[217],{"type":47,"value":218},"lossless",{"type":47,"value":220}," and reads on the standby (after promotion) are strongly consistent. With HA on, each shard has ",{"type":41,"tag":100,"props":222,"children":223},{},[224],{"type":47,"value":225},"6 replicas",{"type":47,"value":227}," in total: 3 LRS replicas under the primary shard + 3 LRS replicas under the standby shard. In AZ-enabled regions the primary and standby sit in ",{"type":41,"tag":100,"props":229,"children":230},{},[231],{"type":47,"value":232},"different availability zones",{"type":47,"value":234},".",{"type":41,"tag":204,"props":236,"children":237},{},[238,243,245,250,252,257],{"type":41,"tag":100,"props":239,"children":240},{},[241],{"type":47,"value":242},"Primary cluster ↔ cross-region replica:",{"type":47,"value":244}," asynchronous — design for eventual consistency on the replica. Some writes acknowledged on the primary ",{"type":41,"tag":100,"props":246,"children":247},{},[248],{"type":47,"value":249},"may not yet",{"type":47,"value":251}," be on the replica, so regional promotion has a ",{"type":41,"tag":100,"props":253,"children":254},{},[255],{"type":47,"value":256},"non-zero RPO",{"type":47,"value":258}," (recent writes can be lost). Replication lag scales with the primary's write intensity and the load on both clusters.",{"type":41,"tag":204,"props":260,"children":261},{},[262,267,269,274],{"type":41,"tag":100,"props":263,"children":264},{},[265],{"type":47,"value":266},"Without HA:",{"type":47,"value":268}," each shard uses locally-redundant storage (LRS) with 3 synchronous Azure Storage replicas. Single-replica failures are auto-healed by Azure Storage (CRC checks + network checksums protect against silent corruption), but a ",{"type":41,"tag":100,"props":270,"children":271},{},[272],{"type":47,"value":273},"zone or region failure can cause downtime and possible data loss",{"type":47,"value":275},". HA is also a prerequisite for availability-zone placement.",{"type":41,"tag":277,"props":278,"children":279},"blockquote",{},[280],{"type":41,"tag":50,"props":281,"children":282},{},[283,285,290],{"type":47,"value":284},"Applications connect to a cluster through a ",{"type":41,"tag":100,"props":286,"children":287},{},[288],{"type":47,"value":289},"single connection string and endpoint",{"type":47,"value":291}," regardless of shard count. The multi-shard topology is fully abstracted — a 16-shard cluster looks like one MongoDB endpoint to the driver.",{"type":41,"tag":193,"props":293,"children":295},{"id":294},"feature-comparison",[296],{"type":47,"value":297},"Feature comparison",{"type":41,"tag":50,"props":299,"children":300},{},[301],{"type":47,"value":302},"How HA and cross-region replicas protect different failure modes:",{"type":41,"tag":56,"props":304,"children":305},{},[306,343],{"type":41,"tag":60,"props":307,"children":308},{},[309],{"type":41,"tag":64,"props":310,"children":311},{},[312,317,322,328,333,338],{"type":41,"tag":68,"props":313,"children":314},{},[315],{"type":47,"value":316},"Failure scenario",{"type":41,"tag":68,"props":318,"children":319},{},[320],{"type":47,"value":321},"Feature",{"type":41,"tag":68,"props":323,"children":325},{"align":324},"center",[326],{"type":47,"value":327},"No data loss (RPO = 0)",{"type":41,"tag":68,"props":329,"children":330},{"align":324},[331],{"type":47,"value":332},"Survives region-wide outage",{"type":41,"tag":68,"props":334,"children":335},{"align":324},[336],{"type":47,"value":337},"Automatic failover",{"type":41,"tag":68,"props":339,"children":340},{"align":324},[341],{"type":47,"value":342},"Connection string preserved",{"type":41,"tag":89,"props":344,"children":345},{},[346,377],{"type":41,"tag":64,"props":347,"children":348},{},[349,354,358,363,368,373],{"type":41,"tag":96,"props":350,"children":351},{},[352],{"type":47,"value":353},"Physical shard \u002F zone failure",{"type":41,"tag":96,"props":355,"children":356},{},[357],{"type":47,"value":104},{"type":41,"tag":96,"props":359,"children":360},{"align":324},[361],{"type":47,"value":362},"✅ (synchronous)",{"type":41,"tag":96,"props":364,"children":365},{"align":324},[366],{"type":47,"value":367},"❌",{"type":41,"tag":96,"props":369,"children":370},{"align":324},[371],{"type":47,"value":372},"✅",{"type":41,"tag":96,"props":374,"children":375},{"align":324},[376],{"type":47,"value":372},{"type":41,"tag":64,"props":378,"children":379},{},[380,385,389,394,398,403],{"type":41,"tag":96,"props":381,"children":382},{},[383],{"type":47,"value":384},"Regional outage",{"type":41,"tag":96,"props":386,"children":387},{},[388],{"type":47,"value":132},{"type":41,"tag":96,"props":390,"children":391},{"align":324},[392],{"type":47,"value":393},"❌ (asynchronous; RPO > 0)",{"type":41,"tag":96,"props":395,"children":396},{"align":324},[397],{"type":47,"value":372},{"type":41,"tag":96,"props":399,"children":400},{"align":324},[401],{"type":47,"value":402},"❌ (customer-triggered)",{"type":41,"tag":96,"props":404,"children":405},{"align":324},[406],{"type":47,"value":407},"✅ ¹",{"type":41,"tag":50,"props":409,"children":410},{},[411,413,418,420,427],{"type":47,"value":412},"¹ Only when the application uses the ",{"type":41,"tag":100,"props":414,"children":415},{},[416],{"type":47,"value":417},"Global read-write",{"type":47,"value":419}," connection string (",{"type":41,"tag":421,"props":422,"children":424},"code",{"className":423},[],[425],{"type":47,"value":426},"\u003Ccluster>.global.mongocluster.cosmos.azure.com",{"type":47,"value":428},"). The cluster-specific \u002F \"self\" connection string becomes read-only after promotion.",{"type":41,"tag":193,"props":430,"children":432},{"id":431},"best-practice-decision-matrix",[433],{"type":47,"value":434},"Best-practice decision matrix",{"type":41,"tag":56,"props":436,"children":437},{},[438,454],{"type":41,"tag":60,"props":439,"children":440},{},[441],{"type":41,"tag":64,"props":442,"children":443},{},[444,449],{"type":41,"tag":68,"props":445,"children":446},{},[447],{"type":47,"value":448},"Scenario",{"type":41,"tag":68,"props":450,"children":451},{},[452],{"type":47,"value":453},"Recommendation",{"type":41,"tag":89,"props":455,"children":456},{},[457,470,482,502,514,527,547,559,572,585],{"type":41,"tag":64,"props":458,"children":459},{},[460,465],{"type":41,"tag":96,"props":461,"children":462},{},[463],{"type":47,"value":464},"Production cluster",{"type":41,"tag":96,"props":466,"children":467},{},[468],{"type":47,"value":469},"Enable HA",{"type":41,"tag":64,"props":471,"children":472},{},[473,478],{"type":41,"tag":96,"props":474,"children":475},{},[476],{"type":47,"value":477},"Need 99.99% SLA",{"type":41,"tag":96,"props":479,"children":480},{},[481],{"type":47,"value":469},{"type":41,"tag":64,"props":483,"children":484},{},[485,490],{"type":41,"tag":96,"props":486,"children":487},{},[488],{"type":47,"value":489},"Need 99.995% SLA",{"type":41,"tag":96,"props":491,"children":492},{},[493,495,500],{"type":47,"value":494},"Enable HA ",{"type":41,"tag":100,"props":496,"children":497},{},[498],{"type":47,"value":499},"and",{"type":47,"value":501}," create a cross-region replica",{"type":41,"tag":64,"props":503,"children":504},{},[505,510],{"type":41,"tag":96,"props":506,"children":507},{},[508],{"type":47,"value":509},"Automatic failover from node\u002Fzone failure",{"type":41,"tag":96,"props":511,"children":512},{},[513],{"type":47,"value":469},{"type":41,"tag":64,"props":515,"children":516},{},[517,522],{"type":41,"tag":96,"props":518,"children":519},{},[520],{"type":47,"value":521},"Cross-region disaster recovery",{"type":41,"tag":96,"props":523,"children":524},{},[525],{"type":47,"value":526},"Create a replica cluster",{"type":41,"tag":64,"props":528,"children":529},{},[530,535],{"type":41,"tag":96,"props":531,"children":532},{},[533],{"type":47,"value":534},"Read scale-out within a single region (analytics \u002F reporting offload)",{"type":41,"tag":96,"props":536,"children":537},{},[538,540,545],{"type":47,"value":539},"Create a ",{"type":41,"tag":100,"props":541,"children":542},{},[543],{"type":47,"value":544},"same-region",{"type":47,"value":546}," replica (no DR benefit; you can have only one replica per primary, so this trades cross-region DR for in-region read offload)",{"type":41,"tag":64,"props":548,"children":549},{},[550,555],{"type":41,"tag":96,"props":551,"children":552},{},[553],{"type":47,"value":554},"Read scale-out across regions",{"type":41,"tag":96,"props":556,"children":557},{},[558],{"type":47,"value":526},{"type":41,"tag":64,"props":560,"children":561},{},[562,567],{"type":41,"tag":96,"props":563,"children":564},{},[565],{"type":47,"value":566},"Availability-zone placement required",{"type":41,"tag":96,"props":568,"children":569},{},[570],{"type":47,"value":571},"Enable HA (HA is required for AZ support)",{"type":41,"tag":64,"props":573,"children":574},{},[575,580],{"type":41,"tag":96,"props":576,"children":577},{},[578],{"type":47,"value":579},"Non-production \u002F dev-test cluster",{"type":41,"tag":96,"props":581,"children":582},{},[583],{"type":47,"value":584},"Disable HA to reduce cost",{"type":41,"tag":64,"props":586,"children":587},{},[588,593],{"type":41,"tag":96,"props":589,"children":590},{},[591],{"type":47,"value":592},"Recover from accidental delete\u002Fmodify",{"type":41,"tag":96,"props":594,"children":595},{},[596],{"type":47,"value":597},"Automatic backups (35-day retention for active clusters)",{"type":41,"tag":193,"props":599,"children":601},{"id":600},"rules",[602],{"type":47,"value":603},"Rules",{"type":41,"tag":200,"props":605,"children":606},{},[607,619,630],{"type":41,"tag":204,"props":608,"children":609},{},[610,617],{"type":41,"tag":611,"props":612,"children":614},"a",{"href":613},"ha-enable-for-production.md",[615],{"type":47,"value":616},"ha-enable-for-production",{"type":47,"value":618}," — Enable HA on all production clusters for the 99.99% SLA, automatic failover, zone redundancy, and zero-data-loss synchronous replication.",{"type":41,"tag":204,"props":620,"children":621},{},[622,628],{"type":41,"tag":611,"props":623,"children":625},{"href":624},"ha-cross-region-replica.md",[626],{"type":47,"value":627},"ha-cross-region-replica",{"type":47,"value":629}," — Add an active-passive replica (cross-region for DR + read scale-out, same-region for pure read scale-out); HA + cross-region replica = 99.995% SLA. Includes the post-promotion runbook (re-enable HA, update connection strings, restore the replica).",{"type":41,"tag":204,"props":631,"children":632},{},[633,639,641,646,648,653],{"type":41,"tag":611,"props":634,"children":636},{"href":635},"ha-backup-retention.md",[637],{"type":47,"value":638},"ha-backup-retention",{"type":47,"value":640}," — Automatic backups are taken continuously and retained for ",{"type":41,"tag":100,"props":642,"children":643},{},[644],{"type":47,"value":645},"35 days",{"type":47,"value":647}," on active clusters and ",{"type":41,"tag":100,"props":649,"children":650},{},[651],{"type":47,"value":652},"7 days",{"type":47,"value":654}," on deleted clusters. Use them to recover from accidental deletes or modifications.",{"type":41,"tag":193,"props":656,"children":658},{"id":657},"references",[659],{"type":47,"value":660},"References",{"type":41,"tag":200,"props":662,"children":663},{},[664,675,685],{"type":41,"tag":204,"props":665,"children":666},{},[667],{"type":41,"tag":611,"props":668,"children":672},{"href":669,"rel":670},"https:\u002F\u002Flearn.microsoft.com\u002Fazure\u002Fdocumentdb\u002Fhigh-availability-replication-best-practices",[671],"nofollow",[673],{"type":47,"value":674},"Best practices for HA and cross-region replication in Azure DocumentDB",{"type":41,"tag":204,"props":676,"children":677},{},[678],{"type":41,"tag":611,"props":679,"children":682},{"href":680,"rel":681},"https:\u002F\u002Flearn.microsoft.com\u002Fazure\u002Freliability\u002Freliability-documentdb",[671],[683],{"type":47,"value":684},"Reliability in Azure DocumentDB",{"type":41,"tag":204,"props":686,"children":687},{},[688,695],{"type":41,"tag":611,"props":689,"children":692},{"href":690,"rel":691},"https:\u002F\u002Flearn.microsoft.com\u002Fazure\u002Fdocumentdb\u002Favailability-disaster-recovery-under-hood",[671],[693],{"type":47,"value":694},"Availability and disaster recovery in Azure DocumentDB — behind the scenes",{"type":47,"value":696}," — cluster anatomy, 6-replica HA layout, replication-lag drivers",{"items":698,"total":875},[699,718,737,756,771,786,799,814,825,837,850,863],{"slug":700,"name":700,"fn":701,"description":702,"org":703,"tags":704,"stars":715,"repoUrl":716,"updatedAt":717},"azure-arg-external-evaluation-policy-author","author and test Azure Resource Graph policies","Use when the user wants to author, design, or test an Azure Policy that queries Azure Resource Graph (ARG) at request-time — i.e. a policy whose deny\u002Faudit decision depends on data from elsewhere in the subscription (sibling\u002Fparent resource state, RG-wide invariants, multi-hop relationships, etc.). Formally called Azure Policy External Evaluation; sometimes referred to colloquially as \"Invoke\". Drives an iterative KQL co-design loop against the user's real subscription via `az graph query`, then emits a policy definition, assignment, `.http` test flow, and an `EXPLANATION.md` companion. Read-only; never provisions anything.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[705,706,709,712],{"name":11,"slug":8,"type":16},{"name":707,"slug":708,"type":16},"Compliance","compliance",{"name":710,"slug":711,"type":16},"Governance","governance",{"name":713,"slug":714,"type":16},"Policy","policy",1686,"https:\u002F\u002Fgithub.com\u002FAzure\u002Fazure-policy","2026-07-12T08:17:48.378432",{"slug":719,"name":719,"fn":720,"description":721,"org":722,"tags":723,"stars":734,"repoUrl":735,"updatedAt":736},"azure-blueprints-migration","migrate Azure Blueprints to Template Specs","Use when a user needs to migrate off Azure Blueprints (definitions and\u002For assignments) to Template Specs and Deployment Stacks before the January 31, 2027 retirement. Covers inventory, export, conversion to Bicep, policy decoupling, Template Spec publishing, Deployment Stack deployment with deny-settings, validation, and cutover.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[724,725,728,731],{"name":11,"slug":8,"type":16},{"name":726,"slug":727,"type":16},"Deployment","deployment",{"name":729,"slug":730,"type":16},"Infrastructure as Code","infrastructure-as-code",{"name":732,"slug":733,"type":16},"Migration","migration",260,"https:\u002F\u002Fgithub.com\u002FAzure\u002Fazure-blueprints","2026-07-12T08:17:49.646405",{"slug":738,"name":738,"fn":739,"description":740,"org":741,"tags":742,"stars":753,"repoUrl":754,"updatedAt":755},"apiview-feedback-resolution","resolve APIView feedback on Azure SDKs","Analyze and resolve APIView review feedback on Azure SDK PRs. **UTILITY SKILL**. USE FOR: APIView comments, API review feedback, SDK API surface changes. DO NOT USE FOR: general code review, non-APIView feedback. INVOKES: azure-sdk-mcp:azsdk_apiview_get_comments, azure-sdk-mcp:azsdk_typespec_customized_code_update.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[743,746,747,750],{"name":744,"slug":745,"type":16},"API Development","api-development",{"name":11,"slug":8,"type":16},{"name":748,"slug":749,"type":16},"Code Review","code-review",{"name":751,"slug":752,"type":16},"Documentation","documentation",133,"https:\u002F\u002Fgithub.com\u002FAzure\u002Fazure-sdk-tools","2026-07-12T08:17:43.350876",{"slug":757,"name":757,"fn":758,"description":759,"org":760,"tags":761,"stars":753,"repoUrl":754,"updatedAt":770},"azsdk-common-live-and-recorded-tests","deploy resources and run Azure SDK tests","Deploy test resources and run Azure SDK tests in live, record, or playback mode. WHEN: \"run live tests\", \"run recorded tests\", \"deploy test resources\", \"record tests\", \"run tests in record mode\", \"clean up test resources\", \"run tests against live resources\". DO NOT USE FOR: writing new tests, authoring Bicep templates, playback-only test runs without resource deployment. INVOKES: azure-sdk-mcp:azsdk_package_run_tests.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[762,763,764,767],{"name":11,"slug":8,"type":16},{"name":726,"slug":727,"type":16},{"name":765,"slug":766,"type":16},"SDK","sdk",{"name":768,"slug":769,"type":16},"Testing","testing","2026-07-12T08:17:44.718943",{"slug":772,"name":772,"fn":773,"description":774,"org":775,"tags":776,"stars":753,"repoUrl":754,"updatedAt":785},"azsdk-common-prepare-release-plan","manage Azure SDK release plan work items","Create, get, update, abandon, and link SDK PRs to release plan work items for Azure SDK releases. **UTILITY SKILL**. USE FOR: \"create release plan\", \"get release plan\", \"update release plan\", \"update API spec in release plan\", \"update SDK details in release plan\", \"abandon release plan\", \"link SDK PR to plan\", \"namespace approval\", \"check release plan status\". DO NOT USE FOR: SDK code generation, pipeline troubleshooting, API review feedback. INVOKES: azure-sdk-mcp:azsdk_create_release_plan, azure-sdk-mcp:azsdk_get_release_plan, azure-sdk-mcp:azsdk_get_release_plan_for_spec_pr, azure-sdk-mcp:azsdk_update_release_plan, azure-sdk-mcp:azsdk_update_api_spec_pull_request_in_release_plan, azure-sdk-mcp:azsdk_update_sdk_details_in_release_plan, azure-sdk-mcp:azsdk_abandon_release_plan, azure-sdk-mcp:azsdk_link_sdk_pull_request_to_release_plan, azure-sdk-mcp:azsdk_link_namespace_approval_issue.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[777,778,781,784],{"name":11,"slug":8,"type":16},{"name":779,"slug":780,"type":16},"GitHub","github",{"name":782,"slug":783,"type":16},"Project Management","project-management",{"name":765,"slug":766,"type":16},"2026-07-12T08:17:38.345387",{"slug":787,"name":787,"fn":788,"description":789,"org":790,"tags":791,"stars":753,"repoUrl":754,"updatedAt":798},"azsdk-common-sdk-release","release Azure SDK packages","Check release readiness and trigger the release pipeline for Azure SDK packages. **UTILITY SKILL**. USE FOR: \"release SDK\", \"trigger release\", \"check release readiness\", \"release pipeline\", \"publish package\", \"ship SDK\". DO NOT USE FOR: SDK development, code generation, pipeline debugging, release plan creation. INVOKES: azure-sdk-mcp:azsdk_release_sdk.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[792,793,796,797],{"name":11,"slug":8,"type":16},{"name":794,"slug":795,"type":16},"CI\u002FCD","ci-cd",{"name":726,"slug":727,"type":16},{"name":765,"slug":766,"type":16},"2026-07-12T08:17:34.27607",{"slug":800,"name":800,"fn":801,"description":802,"org":803,"tags":804,"stars":753,"repoUrl":754,"updatedAt":813},"azure-typespec-author","author and modify Azure TypeSpec API specifications","Authors and modifies Azure TypeSpec (.tsp) API specifications. USE FOR: any TypeSpec\u002Ftsp change — api versions (add, bump, preview, stable, promote), resources, operations, models, properties, decorators, visibility, constraints, breaking changes, LRO, suppressions, operationId, spread model. Covers ARM resource-manager and data-plane services. DO NOT USE FOR: SDK generation, releasing SDK packages, or single MCP tool calls. INVOKES: azure-sdk-mcp:azsdk_typespec_generate_authoring_plan, azure-sdk-mcp:azsdk_run_typespec_validation.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[805,806,807,810],{"name":744,"slug":745,"type":16},{"name":11,"slug":8,"type":16},{"name":808,"slug":809,"type":16},"OpenAPI","openapi",{"name":811,"slug":812,"type":16},"Technical Writing","technical-writing","2026-07-12T08:17:39.603232",{"slug":815,"name":815,"fn":816,"description":817,"org":818,"tags":819,"stars":753,"repoUrl":754,"updatedAt":824},"generate-sdk-locally","generate and test Azure SDKs locally","Generate, build, and test Azure SDKs locally from TypeSpec with automatic customization. WHEN: \"generate SDK locally\", \"build SDK\", \"run SDK tests\", \"run CI checks\", \"validate package\", \"run checks\", \"update changelog\", \"fix SDK build errors\", \"fix breaking changes\", \"resolve SDK generation errors\", \"customize TypeSpec\", \"rename SDK client\", \"rename SDK model\", \"hide operation from SDK\", \"fix analyzer errors\", \"resolve customization drift\", \"create subclient\", \"update metadata\", \"update version\". DO NOT USE FOR: publishing to package registries, CI pipeline configuration, API design review. INVOKES: azsdk_verify_setup, azsdk_package_generate_code, azsdk_package_build_code, azsdk_package_run_check, azsdk_package_run_tests, azsdk_customized_code_update, azsdk_package_update_changelog_content, azsdk_package_update_metadata, azsdk_package_update_version.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[820,821,822,823],{"name":11,"slug":8,"type":16},{"name":794,"slug":795,"type":16},{"name":765,"slug":766,"type":16},{"name":768,"slug":769,"type":16},"2026-07-12T08:17:37.08523",{"slug":826,"name":826,"fn":827,"description":828,"org":829,"tags":830,"stars":753,"repoUrl":754,"updatedAt":836},"markdown-token-optimizer","optimize markdown files for token efficiency","Analyze markdown files for token efficiency and reduce context-window bloat. **UTILITY SKILL**. DO NOT USE FOR: code optimization, general file editing, non-markdown files. TRIGGERS: optimize markdown, reduce tokens, token count, token bloat, too many tokens, make concise, shrink file, file too large, optimize for AI, token efficiency, verbose markdown, reduce file size. INVOKES: waza CLI.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[831,834,835],{"name":832,"slug":833,"type":16},"LLM","llm",{"name":14,"slug":15,"type":16},{"name":811,"slug":812,"type":16},"2026-07-12T08:17:42.080413",{"slug":838,"name":838,"fn":839,"description":840,"org":841,"tags":842,"stars":753,"repoUrl":754,"updatedAt":849},"pipeline-troubleshooting","troubleshoot Azure SDK CI pipelines","Diagnose and resolve failures in Azure SDK CI and generation pipelines. **UTILITY SKILL**. USE FOR: \"pipeline failed\", \"build failure\", \"CI check failing\", \"SDK generation error\", \"reproduce pipeline locally\", \"debug SDK pipeline\". DO NOT USE FOR: local build issues without pipeline context, API design review, SDK publishing. INVOKES: azure-sdk-mcp:azsdk_analyze_pipeline, azure-sdk-mcp:azsdk_package_build_code, azure-sdk-mcp:azsdk_package_run_check.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[843,844,845,848],{"name":11,"slug":8,"type":16},{"name":794,"slug":795,"type":16},{"name":846,"slug":847,"type":16},"Debugging","debugging",{"name":765,"slug":766,"type":16},"2026-07-12T08:17:40.821512",{"slug":851,"name":851,"fn":852,"description":853,"org":854,"tags":855,"stars":753,"repoUrl":754,"updatedAt":862},"sensei","improve skill frontmatter compliance","**WORKFLOW SKILL** — Iteratively improve skill frontmatter compliance using the Ralph loop pattern. WHEN: \"run sensei\", \"sensei help\", \"improve skill\", \"fix frontmatter\", \"skill compliance\", \"frontmatter audit\", \"score skill\", \"check skill tokens\". INVOKES: token counting tools, test runners, git commands. FOR SINGLE OPERATIONS: use token CLI directly for counts\u002Fchecks.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[856,857,858,861],{"name":11,"slug":8,"type":16},{"name":707,"slug":708,"type":16},{"name":859,"slug":860,"type":16},"Process Optimization","process-optimization",{"name":811,"slug":812,"type":16},"2026-07-12T08:17:32.970921",{"slug":864,"name":864,"fn":865,"description":866,"org":867,"tags":868,"stars":753,"repoUrl":754,"updatedAt":874},"skill-authoring","author agent skills for agentskills.io","Write Agent Skills that comply with the agentskills.io specification. WHEN: \"create a skill\", \"new skill\", \"write a skill\", \"skill template\", \"skill structure\", \"review skill\", \"skill PR\", \"skill compliance\", \"SKILL.md format\", \"skill frontmatter\", \"skill best practices\". DO NOT USE FOR: improving existing skills (use sensei), general documentation. INVOKES: waza CLI.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[869,870,873],{"name":751,"slug":752,"type":16},{"name":871,"slug":872,"type":16},"Plugin Development","plugin-development",{"name":811,"slug":812,"type":16},"2026-07-12T08:17:35.873862",109,{"items":877,"total":967},[878,897,907,922,933,945,952],{"slug":879,"name":879,"fn":880,"description":881,"org":882,"tags":883,"stars":24,"repoUrl":25,"updatedAt":896},"documentdb-azure-deployment","deploy Azure DocumentDB clusters","Deploy an Azure DocumentDB cluster (`Microsoft.DocumentDB\u002FmongoClusters`) end-to-end — Bicep (primary), Azure CLI one-shot, Terraform, or portal. Covers resource-group creation, cluster parameters (tier, storage, server version, sharding, HA), firewall rule configuration, retrieving the connection string, and teardown. Use when the user asks to provision, create, deploy, or spin up an Azure DocumentDB cluster, or wants infrastructure-as-code for one.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[884,885,888,891,892,893],{"name":11,"slug":8,"type":16},{"name":886,"slug":887,"type":16},"Bicep","bicep",{"name":889,"slug":890,"type":16},"CLI","cli",{"name":22,"slug":23,"type":16},{"name":726,"slug":727,"type":16},{"name":894,"slug":895,"type":16},"Terraform","terraform","2026-07-12T08:18:56.861159",{"slug":898,"name":898,"fn":899,"description":900,"org":901,"tags":902,"stars":24,"repoUrl":25,"updatedAt":906},"documentdb-connection","configure MongoDB connections for DocumentDB","Optimize MongoDB client connection configuration (pools, timeouts, patterns) for Azure DocumentDB. Use this skill when working on functions that instantiate or configure a MongoDB client (e.g., calling `connect()`), configuring connection pools, troubleshooting connection errors (ECONNREFUSED, timeouts, pool exhaustion), optimizing connection-related performance issues. Includes scenarios like building serverless functions, creating API endpoints, optimizing high-traffic applications, or debugging connection failures.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[903,904,905],{"name":11,"slug":8,"type":16},{"name":22,"slug":23,"type":16},{"name":14,"slug":15,"type":16},"2026-07-12T08:18:49.875358",{"slug":908,"name":908,"fn":909,"description":910,"org":911,"tags":912,"stars":24,"repoUrl":25,"updatedAt":921},"documentdb-data-modeling","design Azure DocumentDB data models","Data modeling patterns for Azure DocumentDB — embed vs reference, 16 MB document limit, denormalization for read-heavy workloads, schema versioning. Use when designing new schemas, reviewing existing data models, migrating from SQL, deciding between embedding and referencing, modeling one-to-one \u002F one-to-many \u002F many-to-many relationships, or troubleshooting document-size and query-performance problems that stem from the data model.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[913,914,917,918],{"name":11,"slug":8,"type":16},{"name":915,"slug":916,"type":16},"Data Modeling","data-modeling",{"name":22,"slug":23,"type":16},{"name":919,"slug":920,"type":16},"MongoDB","mongodb","2026-08-01T05:42:33.42955",{"slug":923,"name":923,"fn":924,"description":925,"org":926,"tags":927,"stars":24,"repoUrl":25,"updatedAt":932},"documentdb-driver","implement Azure DocumentDB driver best practices","MongoDB driver and SDK best practices for Azure DocumentDB — singleton `MongoClient`, connection reuse, connection-pool fundamentals. Use when writing code that instantiates a MongoDB client, reviewing driver initialization, or diagnosing connection-related bugs. For full connection-pool tuning (serverless vs OLTP vs OLAP, timeouts, retries), see the `documentdb-connection` skill.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[928,929,930,931],{"name":11,"slug":8,"type":16},{"name":22,"slug":23,"type":16},{"name":919,"slug":920,"type":16},{"name":765,"slug":766,"type":16},"2026-07-12T08:18:42.136316",{"slug":934,"name":934,"fn":935,"description":936,"org":937,"tags":938,"stars":24,"repoUrl":25,"updatedAt":944},"documentdb-full-text-search","implement full-text search in Azure DocumentDB","Full-text search best practices for Azure DocumentDB using the `createSearchIndexes` command and `$search` aggregation stage — BM25 keyword scoring, fuzzy search (`maxEdits`), phrase search with `slop`, custom analyzers (keyword + lowerCase + asciiFolding + edgeGram) for prefix \u002F ID matching, `pathHierarchy` tokenizer for hierarchical IDs, multi-field search indexes, and hybrid (BM25 + vector) retrieval via Reciprocal Rank Fusion. Use when building search experiences, adding typo tolerance, matching phrases or prefixes on IDs \u002F SKUs \u002F part numbers, or combining lexical and semantic retrieval on the same collection.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[939,940,941],{"name":11,"slug":8,"type":16},{"name":22,"slug":23,"type":16},{"name":942,"slug":943,"type":16},"Search","search","2026-07-15T06:02:41.270913",{"slug":4,"name":4,"fn":5,"description":6,"org":946,"tags":947,"stars":24,"repoUrl":25,"updatedAt":26},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[948,949,950,951],{"name":11,"slug":8,"type":16},{"name":22,"slug":23,"type":16},{"name":18,"slug":19,"type":16},{"name":14,"slug":15,"type":16},{"slug":953,"name":953,"fn":954,"description":955,"org":956,"tags":957,"stars":24,"repoUrl":25,"updatedAt":966},"documentdb-indexing","select and shape Azure DocumentDB indexes","Index-type selection and shape guidance for Azure DocumentDB — when to use single-field, compound (ESR), multikey, wildcard, hashed, 2dsphere, TTL, and vector indexes; query-pattern → index-shape cookbook; per-collection index budget; DocumentDB-specific preference for `textSearch` over community `$text`. Use when designing or reviewing indexes, choosing an index type for a query pattern, or deciding whether an additional index is worth the write cost.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[958,959,962,963],{"name":11,"slug":8,"type":16},{"name":960,"slug":961,"type":16},"Cosmos DB","cosmos-db",{"name":22,"slug":23,"type":16},{"name":964,"slug":965,"type":16},"NoSQL","nosql","2026-07-12T08:18:44.753904",17]