{"id":1444,"date":"2019-04-08T00:00:00","date_gmt":"2019-04-08T00:00:00","guid":{"rendered":"https:\/\/azure.microsoft.com\/blog\/how-skype-modernized-its-backend-infrastructure-using-azure-cosmos-db-part-3"},"modified":"2025-06-19T22:11:41","modified_gmt":"2025-06-20T05:11:41","slug":"how-skype-modernized-its-backend-infrastructure-using-azure-cosmos-db-part-3","status":"publish","type":"post","link":"https:\/\/azure.microsoft.com\/en-us\/blog\/how-skype-modernized-its-backend-infrastructure-using-azure-cosmos-db-part-3\/","title":{"rendered":"How Skype modernized its backend infrastructure using Azure Cosmos DB \u2013 Part 3"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><em>This is a three-part blog post series about how organizations are using Azure Cosmos DB to meet real world needs, and the difference it\u2019s making to them. In <a href=\"https:\/\/azure.microsoft.com\/en-us\/blog\/how-skype-modernized-its-backend-infrastructure-using-azure-cosmos-db-part-1\/\">part 1<\/a>, we explored the challenges Skype faced that led them to take action. In <a href=\"https:\/\/azure.microsoft.com\/en-us\/blog\/how-skype-modernized-its-backend-infrastructure-using-azure-cosmos-db-part-2\/\">part 2<\/a>, we examined how Skype implemented Azure Cosmos DB to modernize its backend infrastructure. In this post (part 3 of 3), we cover the outcomes resulting from those efforts.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Note:<\/strong> Comments in italics\/parenthesis are the author&#8217;s.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"the-outcomes\">The outcomes<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"improved-throughout-latency-scalability-and-more\">Improved throughout, latency, scalability, and more<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Using Azure Cosmos DB, Skype replaced three monolithic, geographically isolated data stores with a single, globally distributed user data service that delivers better throughput, lower latencies, and improved availability. The new PCS service can elastically scale on demand to handle to handle future growth, and gives the Skype team ownership of its data without the burden of maintaining its own infrastructure\u2014all at less than half what it cost to maintain the old PCS system. Development of the solution was fast and straightforward thanks to the extensive functionality provided by Azure Cosmos DB and the fact that it\u2019s a fully-hosted service.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"better-throughout-and-lower-latencies\">Better throughout and lower latencies<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Compared to the old solution, the new PCS service is delivering improved throughput and lower latency\u2014in turn enabling the Skype team to easily meet all its SLAs. \u201cEasy geographic distribution, as enabled by Azure Cosmos DB, was a key enabler in making all this possible,\u201d says Kaduk. \u201cFor example, by enabling us to put data closer to where its users are, in Europe, we\u2019ve been able to significantly reduce the time required for the permission service that\u2019s used to setup a call\u2014and meet our overall one-second SLA for that task.\u201d<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"higher-availability\">Higher availability<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The new PCS service is supporting its workload without timeouts, deadlocks, or quality-of-service degradation\u2014meaning that users are no longer inconvenienced with bad data or having to wait. And because the service runs on Azure Cosmos DB, the Skype team no longer needs to worry about the availability of the underlying infrastructure upon which its new PCS service runs.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u201cAzure Cosmos DB provides a 99.999 percent read availability SLA for all multiregion accounts, with built-in helps protect against the unlikely event of a regional outage,\u201d says Kaduk. \u201cWe can prioritize failover order for our multiregion accounts and can even manually trigger failover to test the end-to-end availability of our app\u2014all with guaranteed zero data-loss.\u201d<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"elastic-scalability\">Elastic scalability<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">With Azure Cosmos DB, the Skype team can independently and <a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/cosmos-db\/partition-data\" target=\"_blank\" rel=\"noopener\">elastically scale storage and throughput<\/a> at any time, across the globe. All physical partition management required to scale is fully managed by Azure Cosmos DB and is transparent to the Skype team. Azure Cosmos DB handles the distribution of data across physical and logical partitions and the routing of query requests to the right partition\u2014all without compromising availability, consistency, latency, or throughput. All this enables the team to pay for only the storage and throughput it needs today, and to avoid having to invest any time, energy, or money in spare capacity before it\u2019s needed.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u201cThe ability of Azure Cosmos DB to scale is obvious,\u201d says Kaduk. \u201cWe planned for 100 terabytes of data 18 months ago and are already at 140 terabytes, with no major issues handling that growth.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"full-ownership-of-data-with-zero-maintenance-and-administration\">Full ownership of data \u2013 with zero maintenance and administration<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Because Azure Cosmos DB is a fully managed Microsoft Azure service, the Skype team doesn\u2019t need to worry about day-to-day administration, deploy and configure software, or deal with upgrades. Every database is automatically backed up, protected against regional failures, and encrypted, so you the team doesn\u2019t need to worry about those things either\u2014leaving it with more time to focus on delivering new customer value.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u201cOne of the great things about our new PCS service is that we fully own the data store, whereas we didn\u2019t before,\u201d says Kaduk. \u201cIn the past, when Skype was first acquired by Microsoft, we had a team that maintained our databases. We didn\u2019t want to continue maintaining them, so we handed them off to a central team. Today, that same user data is back under our full control and we\u2019re still not burdened with day-to-day maintenance\u2014it\u2019s really the best of both worlds.\u201d<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"lower-costs\">Lower costs<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Although Kaduk\u2019s team wasn\u2019t paying to maintain the old PCS databases, he knows what that used to cost\u2014and says that the monthly bill for the new solution running on Azure Cosmos DB is much lower. \u201cOur new PCS data store is about 40 percent less expensive than the old one was,\u201d he states. \u201cWe pay that cost ourselves today, but, given all the benefits, it\u2019s well worth it.\u201d<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"rapid-straightforward-implementation\">Rapid, straightforward implementation<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">All in all, Kaduk feels the migration to Azure Cosmos DB was \u201cpretty simple and straightforward.\u201d Development began in May 2017, and by October 2017, all development was complete and the team began migrating all 4 billion Skype users to the new solution. The team consisted of eight developers, one program manager, and one manager.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u201cWe had no prior experience with Azure Cosmos DB, but it was pretty easy to come up to speed,\u201d he states. \u201cEven with a few lessons learned, we did it all in six months, which is pretty impressive for a project of this scale. One reason for our rapid success was that we didn\u2019t have to worry about deploying any physical infrastructure. Azure Cosmos DB also gave us a schema-free document database with both SQL syntax and change feed streaming capabilities built-in, all under strict SLAs. This greatly simplified our architecture and enabled us to meet all our requirements in a minimum amount of time.\u201d<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"lessons-learned\">Lessons learned<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Looking back at the project, Kaduk recalls several \u201clessons learned.\u201d These include:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"wp-block-list-item\"><strong>Use direct mode for better performance <\/strong>\u2013 How a client connects to Azure Cosmos DB has important performance implications, especially with respect to observed client side latency. The team began by using the default Gateway Mode connection policy, but switched to a Direct Mode connection policy because it <a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/cosmos-db\/performance-tips\" target=\"_blank\" rel=\"noopener\">delivers better performance<\/a>.<\/li>\n\n\n\n<li class=\"wp-block-list-item\"><strong>Learn how to write and handle stored procedures<\/strong> \u2013 With Azure Cosmos DB, transactions can only be implemented using <a href=\"https:\/\/docs.microsoft.com\/en-us\/rest\/api\/cosmos-db\/stored-procedures\" target=\"_blank\" rel=\"noopener\">stored procedures<\/a>\u2014pieces of application logic that are written in JavaScript that are registered and executed against a collection as a single transaction. <em>(In Azure Cosmos DB, JavaScript is hosted in the same memory space as the database. Hence, requests made within stored procedures execute in the same scope of a database session, which enables Azure Cosmos DB to guarantee ACID for all operations that are part of a single stored procedure.)<\/em><\/li>\n\n\n\n<li class=\"wp-block-list-item\"><strong>Pay attention to query design<\/strong> \u2013 With Azure Cosmos DB, queries have a large impact in terms of RU consumption. Developers didn\u2019t pay much attention to query design at first, but soon found that RU costs were higher than desired. This led to an increased focus on optimizing query design, such as using point document reads wherever possible and optimizing the query selections per API.<\/li>\n\n\n\n<li class=\"wp-block-list-item\"><strong>Use the Azure Cosmos DB SDK 2.x to optimize connection usage<\/strong> \u2013 Within Azure Cosmos DB, the data stored in each region is distributed across tens of thousands of physical partitions. To serve reads and writes, the Azure Cosmos DB client SDK must establish a connection with the physical node hosting the partition. The team started by using the Azure Cosmos DB SDK 1.x, but found that its lack of support for connection multiplexing led to excessive connection establishment and closing rates. Switching to the Azure Cosmos DB SDK 2.x, which supports connection multiplexing, helped solve the problem \u2014and also helped mitigate <a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/load-balancer\/load-balancer-outbound-connections-classic\" target=\"_blank\" rel=\"noopener\">SNAT port exhaustion issues<\/a>.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">The following diagram shows connection status and time_waits when using SDK 1.x.<\/p>\n\n\n\n<figure class=\"wp-block-image has-custom-border\"><img decoding=\"async\" src=\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2019\/04\/87a294c4-dc66-4620-bb96-81cd063f9239.webp\" alt=\"Chart showing connection when using SDK 1.x\" style=\"border-radius:0px\" title=\"Chart showing connection when using SDK 1.x\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">And the following shows the same after the move to SDK 2.x.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter has-custom-border\"><img decoding=\"async\" src=\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2019\/04\/e1d501df-7e69-43a2-a5b9-486998133d24.webp\" alt=\"Chart showing connection when using SDK 2.x\" style=\"border-radius:0px\" title=\"Chart showing connection when using SDK 2.x\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Using Azure Cosmos DB, Skype replaced three monolithic, geographically isolated data stores with a single, globally distributed user data service that delivers better throughput, lower latencies, and improved availability.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"ms_queue_id":[],"ep_exclude_from_search":false,"_classifai_error":"","_classifai_text_to_speech_error":"","_alt_title":"","footnotes":"","msx_community_cta_settings":[]},"categories":[1473,1485],"tags":[],"audience":[3054,3057,3055,3056],"content-type":[1527],"product":[1538],"tech-community":[],"topic":[],"coauthors":[177],"class_list":["post-1444","post","type-post","status-publish","format-standard","hentry","category-databases","category-internet-of-things","audience-business-decision-makers","audience-data-professionals","audience-developers","audience-it-implementors","content-type-customer-stories","product-azure-cosmos-db","review-flag-1680286581-295","review-flag-1-1680286581-825","review-flag-2-1680286581-601","review-flag-3-1680286581-173","review-flag-4-1680286581-250","review-flag-free-1680286579-836","review-flag-new-1680286579-546","review-flag-percent"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>How Skype modernized its backend infrastructure using Azure Cosmos DB \u2013 Part 3 | Microsoft Azure Blog<\/title>\n<meta name=\"description\" content=\"Using Azure Cosmos DB, Skype replaced three monolithic, geographically isolated data stores with a single, globally distributed user data service that delivers better throughput, lower latencies, and improved availability.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/azure.microsoft.com\/en-us\/blog\/how-skype-modernized-its-backend-infrastructure-using-azure-cosmos-db-part-3\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How Skype modernized its backend infrastructure using Azure Cosmos DB \u2013 Part 3 | Microsoft Azure Blog\" \/>\n<meta property=\"og:description\" content=\"Using Azure Cosmos DB, Skype replaced three monolithic, geographically isolated data stores with a single, globally distributed user data service that delivers better throughput, lower latencies, and improved availability.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/azure.microsoft.com\/en-us\/blog\/how-skype-modernized-its-backend-infrastructure-using-azure-cosmos-db-part-3\/\" \/>\n<meta property=\"og:site_name\" content=\"Microsoft Azure Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/microsoftazure\" \/>\n<meta property=\"article:published_time\" content=\"2019-04-08T00:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-20T05:11:41+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2019\/04\/87a294c4-dc66-4620-bb96-81cd063f9239.webp\" \/>\n<meta name=\"author\" content=\"Parul Matah\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@azure\" \/>\n<meta name=\"twitter:site\" content=\"@azure\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Parul Matah\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/how-skype-modernized-its-backend-infrastructure-using-azure-cosmos-db-part-3\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/how-skype-modernized-its-backend-infrastructure-using-azure-cosmos-db-part-3\/\"},\"author\":[{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/author\/parul-matah\/\",\"@type\":\"Person\",\"@name\":\"Parul Matah\"}],\"headline\":\"How Skype modernized its backend infrastructure using Azure Cosmos DB \u2013 Part 3\",\"datePublished\":\"2019-04-08T00:00:00+00:00\",\"dateModified\":\"2025-06-20T05:11:41+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/how-skype-modernized-its-backend-infrastructure-using-azure-cosmos-db-part-3\/\"},\"wordCount\":1304,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/how-skype-modernized-its-backend-infrastructure-using-azure-cosmos-db-part-3\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2019\/04\/87a294c4-dc66-4620-bb96-81cd063f9239.webp\",\"articleSection\":[\"Databases\",\"Internet of things\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/azure.microsoft.com\/en-us\/blog\/how-skype-modernized-its-backend-infrastructure-using-azure-cosmos-db-part-3\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/how-skype-modernized-its-backend-infrastructure-using-azure-cosmos-db-part-3\/\",\"url\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/how-skype-modernized-its-backend-infrastructure-using-azure-cosmos-db-part-3\/\",\"name\":\"How Skype modernized its backend infrastructure using Azure Cosmos DB \u2013 Part 3 | Microsoft Azure Blog\",\"isPartOf\":{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/how-skype-modernized-its-backend-infrastructure-using-azure-cosmos-db-part-3\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/how-skype-modernized-its-backend-infrastructure-using-azure-cosmos-db-part-3\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2019\/04\/87a294c4-dc66-4620-bb96-81cd063f9239.webp\",\"datePublished\":\"2019-04-08T00:00:00+00:00\",\"dateModified\":\"2025-06-20T05:11:41+00:00\",\"description\":\"Using Azure Cosmos DB, Skype replaced three monolithic, geographically isolated data stores with a single, globally distributed user data service that delivers better throughput, lower latencies, and improved availability.\",\"breadcrumb\":{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/how-skype-modernized-its-backend-infrastructure-using-azure-cosmos-db-part-3\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/azure.microsoft.com\/en-us\/blog\/how-skype-modernized-its-backend-infrastructure-using-azure-cosmos-db-part-3\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/how-skype-modernized-its-backend-infrastructure-using-azure-cosmos-db-part-3\/#primaryimage\",\"url\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2019\/04\/87a294c4-dc66-4620-bb96-81cd063f9239.webp\",\"contentUrl\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2019\/04\/87a294c4-dc66-4620-bb96-81cd063f9239.webp\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/how-skype-modernized-its-backend-infrastructure-using-azure-cosmos-db-part-3\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Blog home\",\"item\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Databases\",\"item\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/category\/databases\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"How Skype modernized its backend infrastructure using Azure Cosmos DB \u2013 Part 3\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/#website\",\"url\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/\",\"name\":\"Microsoft Azure Blog\",\"description\":\"Get the latest Azure news, updates, and announcements from the Azure blog. From product updates to hot topics, hear from the Azure experts.\",\"publisher\":{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/#organization\",\"name\":\"Microsoft Azure Blog\",\"url\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2024\/06\/microsoft_logo.webp\",\"contentUrl\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2024\/06\/microsoft_logo.webp\",\"width\":512,\"height\":512,\"caption\":\"Microsoft Azure Blog\"},\"image\":{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/microsoftazure\",\"https:\/\/x.com\/azure\",\"https:\/\/www.instagram.com\/microsoftdeveloper\/\",\"https:\/\/www.linkedin.com\/company\/16188386\",\"https:\/\/www.youtube.com\/user\/windowsazure\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/#\/schema\/person\/c702e5edd662b328b49b7e1180cab117\",\"name\":\"shakir\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/9342c7c05bb16548741bc5cd3a3e3b7ee0c8e746844ad2cc582db5beb5514c6f?s=96&d=mm&r=g7664e653ea371ce16eaf75e9fa8952c4\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/9342c7c05bb16548741bc5cd3a3e3b7ee0c8e746844ad2cc582db5beb5514c6f?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/9342c7c05bb16548741bc5cd3a3e3b7ee0c8e746844ad2cc582db5beb5514c6f?s=96&d=mm&r=g\",\"caption\":\"shakir\"},\"sameAs\":[\"https:\/\/azure.microsoft.com\"],\"url\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/author\/shakir\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How Skype modernized its backend infrastructure using Azure Cosmos DB \u2013 Part 3 | Microsoft Azure Blog","description":"Using Azure Cosmos DB, Skype replaced three monolithic, geographically isolated data stores with a single, globally distributed user data service that delivers better throughput, lower latencies, and improved availability.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/azure.microsoft.com\/en-us\/blog\/how-skype-modernized-its-backend-infrastructure-using-azure-cosmos-db-part-3\/","og_locale":"en_US","og_type":"article","og_title":"How Skype modernized its backend infrastructure using Azure Cosmos DB \u2013 Part 3 | Microsoft Azure Blog","og_description":"Using Azure Cosmos DB, Skype replaced three monolithic, geographically isolated data stores with a single, globally distributed user data service that delivers better throughput, lower latencies, and improved availability.","og_url":"https:\/\/azure.microsoft.com\/en-us\/blog\/how-skype-modernized-its-backend-infrastructure-using-azure-cosmos-db-part-3\/","og_site_name":"Microsoft Azure Blog","article_publisher":"https:\/\/www.facebook.com\/microsoftazure","article_published_time":"2019-04-08T00:00:00+00:00","article_modified_time":"2025-06-20T05:11:41+00:00","og_image":[{"url":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2019\/04\/87a294c4-dc66-4620-bb96-81cd063f9239.webp","type":"","width":"","height":""}],"author":"Parul Matah","twitter_card":"summary_large_image","twitter_creator":"@azure","twitter_site":"@azure","twitter_misc":{"Written by":"Parul Matah","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/how-skype-modernized-its-backend-infrastructure-using-azure-cosmos-db-part-3\/#article","isPartOf":{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/how-skype-modernized-its-backend-infrastructure-using-azure-cosmos-db-part-3\/"},"author":[{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/author\/parul-matah\/","@type":"Person","@name":"Parul Matah"}],"headline":"How Skype modernized its backend infrastructure using Azure Cosmos DB \u2013 Part 3","datePublished":"2019-04-08T00:00:00+00:00","dateModified":"2025-06-20T05:11:41+00:00","mainEntityOfPage":{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/how-skype-modernized-its-backend-infrastructure-using-azure-cosmos-db-part-3\/"},"wordCount":1304,"commentCount":0,"publisher":{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/#organization"},"image":{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/how-skype-modernized-its-backend-infrastructure-using-azure-cosmos-db-part-3\/#primaryimage"},"thumbnailUrl":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2019\/04\/87a294c4-dc66-4620-bb96-81cd063f9239.webp","articleSection":["Databases","Internet of things"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/azure.microsoft.com\/en-us\/blog\/how-skype-modernized-its-backend-infrastructure-using-azure-cosmos-db-part-3\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/how-skype-modernized-its-backend-infrastructure-using-azure-cosmos-db-part-3\/","url":"https:\/\/azure.microsoft.com\/en-us\/blog\/how-skype-modernized-its-backend-infrastructure-using-azure-cosmos-db-part-3\/","name":"How Skype modernized its backend infrastructure using Azure Cosmos DB \u2013 Part 3 | Microsoft Azure Blog","isPartOf":{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/how-skype-modernized-its-backend-infrastructure-using-azure-cosmos-db-part-3\/#primaryimage"},"image":{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/how-skype-modernized-its-backend-infrastructure-using-azure-cosmos-db-part-3\/#primaryimage"},"thumbnailUrl":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2019\/04\/87a294c4-dc66-4620-bb96-81cd063f9239.webp","datePublished":"2019-04-08T00:00:00+00:00","dateModified":"2025-06-20T05:11:41+00:00","description":"Using Azure Cosmos DB, Skype replaced three monolithic, geographically isolated data stores with a single, globally distributed user data service that delivers better throughput, lower latencies, and improved availability.","breadcrumb":{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/how-skype-modernized-its-backend-infrastructure-using-azure-cosmos-db-part-3\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/azure.microsoft.com\/en-us\/blog\/how-skype-modernized-its-backend-infrastructure-using-azure-cosmos-db-part-3\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/how-skype-modernized-its-backend-infrastructure-using-azure-cosmos-db-part-3\/#primaryimage","url":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2019\/04\/87a294c4-dc66-4620-bb96-81cd063f9239.webp","contentUrl":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2019\/04\/87a294c4-dc66-4620-bb96-81cd063f9239.webp"},{"@type":"BreadcrumbList","@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/how-skype-modernized-its-backend-infrastructure-using-azure-cosmos-db-part-3\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Blog home","item":"https:\/\/azure.microsoft.com\/en-us\/blog\/"},{"@type":"ListItem","position":2,"name":"Databases","item":"https:\/\/azure.microsoft.com\/en-us\/blog\/category\/databases\/"},{"@type":"ListItem","position":3,"name":"How Skype modernized its backend infrastructure using Azure Cosmos DB \u2013 Part 3"}]},{"@type":"WebSite","@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/#website","url":"https:\/\/azure.microsoft.com\/en-us\/blog\/","name":"Microsoft Azure Blog","description":"Get the latest Azure news, updates, and announcements from the Azure blog. From product updates to hot topics, hear from the Azure experts.","publisher":{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/azure.microsoft.com\/en-us\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/#organization","name":"Microsoft Azure Blog","url":"https:\/\/azure.microsoft.com\/en-us\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2024\/06\/microsoft_logo.webp","contentUrl":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2024\/06\/microsoft_logo.webp","width":512,"height":512,"caption":"Microsoft Azure Blog"},"image":{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/microsoftazure","https:\/\/x.com\/azure","https:\/\/www.instagram.com\/microsoftdeveloper\/","https:\/\/www.linkedin.com\/company\/16188386","https:\/\/www.youtube.com\/user\/windowsazure"]},{"@type":"Person","@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/#\/schema\/person\/c702e5edd662b328b49b7e1180cab117","name":"shakir","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/9342c7c05bb16548741bc5cd3a3e3b7ee0c8e746844ad2cc582db5beb5514c6f?s=96&d=mm&r=g7664e653ea371ce16eaf75e9fa8952c4","url":"https:\/\/secure.gravatar.com\/avatar\/9342c7c05bb16548741bc5cd3a3e3b7ee0c8e746844ad2cc582db5beb5514c6f?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/9342c7c05bb16548741bc5cd3a3e3b7ee0c8e746844ad2cc582db5beb5514c6f?s=96&d=mm&r=g","caption":"shakir"},"sameAs":["https:\/\/azure.microsoft.com"],"url":"https:\/\/azure.microsoft.com\/en-us\/blog\/author\/shakir\/"}]}},"msxcm_display_generated_audio":false,"msxcm_animated_featured_image":null,"distributor_meta":false,"distributor_terms":false,"distributor_media":false,"distributor_original_site_name":"Microsoft Azure Blog","distributor_original_site_url":"https:\/\/azure.microsoft.com\/en-us\/blog","push-errors":false,"_links":{"self":[{"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/posts\/1444","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/comments?post=1444"}],"version-history":[{"count":1,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/posts\/1444\/revisions"}],"predecessor-version":[{"id":42591,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/posts\/1444\/revisions\/42591"}],"wp:attachment":[{"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/media?parent=1444"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/categories?post=1444"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/tags?post=1444"},{"taxonomy":"audience","embeddable":true,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/audience?post=1444"},{"taxonomy":"content-type","embeddable":true,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/content-type?post=1444"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/product?post=1444"},{"taxonomy":"tech-community","embeddable":true,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/tech-community?post=1444"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/topic?post=1444"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/coauthors?post=1444"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}