{"id":6070,"date":"2018-12-01T18:26:57","date_gmt":"2018-12-02T02:26:57","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=6070"},"modified":"2025-06-13T20:46:24","modified_gmt":"2025-06-14T03:46:24","slug":"understanding-xdcr-part-1","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/understanding-xdcr-part-1\/","title":{"rendered":"Understanding Cross Data Center Replication (XDCR) &#8211; Part 1"},"content":{"rendered":"<p><span style=\"font-weight: 400\">If you have any familiarity with Couchbase, you definitely know <a href=\"https:\/\/www.couchbase.com\/products\/xdcr\/\">XDCR<\/a>. If you use Couchbase for any of your applications, you are very likely using XDCR. I wouldn\u2019t be wrong if I said, XDCR is indeed one of our customers\u2019 most loved products. If you are now interested in learning what makes XDCR so awesome, you are in the right place, please continue reading. In contrary, if you have no idea about what am saying, well this is your opportunity to learn about it.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Replication is the key to the effectiveness of distributed systems to provide enhanced performance, high availability and fault tolerance. XDCR is a highly performant replication technology used to replicate data between two Couchbase clusters. This is complementary to the intra-cluster replication. XDCR provides asynchronous replication and maintains data consistency across sites via eventual consistency.This implies, as soon as a single copy of mutation is executed, acknowledgements are sent to the applications and eventually data becomes consistent across different clusters in the topology.<\/span><\/p>\n<p><b>Core principles behind this technology <\/b><\/p>\n<ol>\n<li style=\"font-weight: 400\"><b>Highly performant :<\/b><span style=\"font-weight: 400\"> XDCR is highly performant replication system operating at the speed of network and memory with very low latency. Replication is memory to memory. <\/span><\/li>\n<li style=\"font-weight: 400\"><b>Independently scalable system :<\/b><span style=\"font-weight: 400\"> XDCR has a peer to peer architecture where clusters can be added or removed and every cluster in the topology can be scaled up or down without impacting other clusters.<\/span><\/li>\n<li style=\"font-weight: 400\"><b>Infrastructure agnostic :<\/b><span style=\"font-weight: 400\"> XDCR can be used to replicate data between any two couchbase clusters irrespective of their deployment platform as bare metal, VMs, private cloud, public cloud, hybrid or containers. <\/span><\/li>\n<li style=\"font-weight: 400\"><b>Topology aware : <\/b><span style=\"font-weight: 400\">\u00a0XDCR is topology aware, as nodes are added to \/ removed from clusters, system adjusts and manages replication accordingly, without any manual intervention.<\/span><\/li>\n<li style=\"font-weight: 400\"><b>Simplified setup and administration:<\/b><span style=\"font-weight: 400\"> XDCR can be set up in &lt;15 secs, between any two Couchbase clusters. Once set up, the documents are continuously synchronized between source and target. It operates without any manual intervention even during topology changes like failover or rebalance.<\/span><\/li>\n<li style=\"font-weight: 400\"><b>Flexible topology :<\/b><span style=\"font-weight: 400\"> Unidirectional, bidirectional, hub &amp; spoke, ring, mesh etc., any complex topology can be set up. <\/span><\/li>\n<li style=\"font-weight: 400\"><b>Resilient :<\/b><span style=\"font-weight: 400\"> Incase of any network failures, XDCR can resume replication from where it was interrupted. XDCR also continuously retries until the replication is successful.<\/span><\/li>\n<\/ol>\n<p><b>XDCR under the hood<\/b><\/p>\n<p><span style=\"font-weight: 400\">To familiarize yourself with Couchbase server architecture, please listen to this\u00a0<a href=\"https:\/\/www.youtube.com\/watch?v=bgFyBEgTBc4\">talk<\/a>.<\/span><\/p>\n<p><iframe loading=\"lazy\" title=\"Couchbase Server Architecture: An Overview \u2013 Connect Silicon Valley 2018\" width=\"900\" height=\"506\" src=\"https:\/\/www.youtube.com\/embed\/bgFyBEgTBc4?feature=oembed&#038;enablejsapi=1&#038;origin=https:\/\/www.couchbase.com\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" allowfullscreen><\/iframe><\/p>\n<p><span style=\"font-weight: 400\">In this blog, we shall focus on XDCR architecture. <\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-6071 aligncenter\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2018\/12\/Screen-Shot-2018-12-01-at-5.58.27-PM-300x120.png\" alt=\"\" width=\"703\" height=\"281\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/12\/Screen-Shot-2018-12-01-at-5.58.27-PM-300x120.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/12\/Screen-Shot-2018-12-01-at-5.58.27-PM-1024x408.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/12\/Screen-Shot-2018-12-01-at-5.58.27-PM-768x306.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/12\/Screen-Shot-2018-12-01-at-5.58.27-PM-1536x612.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/12\/Screen-Shot-2018-12-01-at-5.58.27-PM-20x8.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/12\/Screen-Shot-2018-12-01-at-5.58.27-PM-1320x526.png 1320w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/12\/Screen-Shot-2018-12-01-at-5.58.27-PM.png 1726w\" sizes=\"auto, (max-width: 703px) 100vw, 703px\" \/><span style=\"font-weight: 400\">To describe the flow at a high level, the application data from the app server is written to our built in memory (cache) through the client SDKs. Once this data is in memory, it is channelized into different queues for replication and persistence. The inter-cluster replication happens between memory to memory as indicated in the fig above.This is one of the major factors which enable XDCR to provide very low-latency.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Also, the replication is highly parallel between nodes in the source and target. The replication queues can be tuned between 2-100 depending on the availability of bandwidth and desired performance.<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-6072 aligncenter\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2018\/12\/Screen-Shot-2018-12-01-at-6.09.35-PM-300x171.png\" alt=\"\" width=\"377\" height=\"215\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/12\/Screen-Shot-2018-12-01-at-6.09.35-PM-300x171.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/12\/Screen-Shot-2018-12-01-at-6.09.35-PM-768x438.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/12\/Screen-Shot-2018-12-01-at-6.09.35-PM-20x11.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/12\/Screen-Shot-2018-12-01-at-6.09.35-PM.png 786w\" sizes=\"auto, (max-width: 377px) 100vw, 377px\" \/><\/p>\n<p><span style=\"font-weight: 400\">Buckets in Couchbase are logical containers for documents. XDCR can be set up at the bucket level. Each bucket is divided into 1024 virtual buckets called as vbuckets. These vbuckets are split equally among the nodes in each cluster. Each of these nodes end up with some active and some replica data. XDCR decentralizes replication among these nodes in the cluster. <\/span><\/p>\n<p><span style=\"font-weight: 400\">Couchbase maintains a streaming protocol called as <\/span><a href=\"https:\/\/docs.couchbase.com\/server\/5.5\/understanding-couchbase\/clusters-and-availability\/replication-architecture.html#database-change-protocol\"><span style=\"font-weight: 400\">\u201cDatabase Change Protocol (DCP)\u201d<\/span><\/a><span style=\"font-weight: 400\"> to <\/span><span style=\"font-weight: 400\">communicate the state of data using an ordered changelog. <\/span><span style=\"font-weight: 400\">XDCR is a consumer of this protocol and <\/span><span style=\"font-weight: 400\">relies on DCP to propagate changes. <\/span><\/p>\n<p><span style=\"font-weight: 400\">An XDCR replication queue maintains the XDCR specific changes. XDCR worker threads pick up the changes for the given active vbucket on the node and communicate the changes to the remote node that maintains the active vbucket at the destination cluster. The architecture does not require any centralized coordination for replication of each vbucket which factors in the low latency and high throughput characteristics. The number of worker threads can be configured to maximize the throughput depending on available bandwidth. <\/span><\/p>\n<p><span style=\"font-weight: 400\">XDCR maintains checkpoints. Whenever the replication is interrupted due to network failures or source cluster failover etc., XDCR resumes replication from the last checkpoint. If for some reason its unsuccessful, XDCR keeps retrying until it\u2019s successful. Replication also happens in two modes pessimistic replication where only the keys are replicated and optimistic replication where both keys and values can be replicated. <\/span><\/p>\n<p><span style=\"font-weight: 400\">XDCR is also highly optimized for bandwidth conservation via features such as compression, network throttling and optimistic replication where you can compress the documents for replication, restrict the bandwidth utilization and choose to replicate the documents with optimistic replication upto a certain threshold for reduced latency.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Hope this first part of <\/span><i><span style=\"font-weight: 400\">Understanding XDCR series<\/span><\/i><span style=\"font-weight: 400\">\u00a0has given you a good overview of what is XDCR, how it works and what makes it such an efficient replication system.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Stayed tuned for the following parts where we will learn more about its features, benefits, applications, performance tuning and much more!<\/span><\/p>\n<p>If there is a specific topic you are interested to learn more about, please add it in the comments.<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>If you have any familiarity with Couchbase, you definitely know XDCR. If you use Couchbase for any of your applications, you are very likely using XDCR. I wouldn\u2019t be wrong if I said, XDCR is indeed one of our customers\u2019 [&hellip;]<\/p>\n","protected":false},"author":6588,"featured_media":13873,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1814,1815,1821,2225,1816,9415,9417],"tags":[1236,1952,2311,2312,2309,2126,1261,2313,1725,1340],"ppma_author":[9064],"class_list":["post-6070","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-application-design","category-best-practices-and-tutorials","category-couchbase-architecture","category-cloud","category-couchbase-server","category-xdcr","category-performance","tag-big-data","tag-data-replication","tag-distributed-database","tag-document-database","tag-global-deployment","tag-high-availability","tag-json","tag-key-value","tag-nosql-database","tag-scalability"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.7.1 (Yoast SEO v25.7) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Cross Datacenter Replication (XDCR) Architecture | Couchbase<\/title>\n<meta name=\"description\" content=\"XDCR provides asynchronous replication and maintains data consistency across sites via eventual consistency. This blog focuses on XDCR architecture.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.couchbase.com\/blog\/understanding-xdcr-part-1\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Understanding Cross Data Center Replication (XDCR) - Part 1\" \/>\n<meta property=\"og:description\" content=\"XDCR provides asynchronous replication and maintains data consistency across sites via eventual consistency. This blog focuses on XDCR architecture.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/understanding-xdcr-part-1\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2018-12-02T02:26:57+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T03:46:24+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/12\/Screen-Shot-2018-12-01-at-5.58.27-PM.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1726\" \/>\n\t<meta property=\"og:image:height\" content=\"688\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Chaitra Ramarao, Sr. Product Manager, Couchbase Inc.\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Chaitra Ramarao, Sr. Product Manager, Couchbase Inc.\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/understanding-xdcr-part-1\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/understanding-xdcr-part-1\/\"},\"author\":{\"name\":\"Chaitra Ramarao, Sr. Product Manager, Couchbase Inc.\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/852cd95d6c8aa5ea6d4128643cc3c2b6\"},\"headline\":\"Understanding Cross Data Center Replication (XDCR) &#8211; Part 1\",\"datePublished\":\"2018-12-02T02:26:57+00:00\",\"dateModified\":\"2025-06-14T03:46:24+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/understanding-xdcr-part-1\/\"},\"wordCount\":864,\"commentCount\":2,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/understanding-xdcr-part-1\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"keywords\":[\"Big Data\",\"Data Replication\",\"distributed database\",\"document database\",\"Global deployment\",\"High Availability\",\"JSON\",\"key value\",\"NoSQL Database\",\"Scalability\"],\"articleSection\":[\"Application Design\",\"Best Practices and Tutorials\",\"Couchbase Architecture\",\"Couchbase Capella\",\"Couchbase Server\",\"Cross Data Center Replication (XDCR)\",\"High Performance\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/understanding-xdcr-part-1\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/understanding-xdcr-part-1\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/understanding-xdcr-part-1\/\",\"name\":\"Cross Datacenter Replication (XDCR) Architecture | Couchbase\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/understanding-xdcr-part-1\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/understanding-xdcr-part-1\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2018-12-02T02:26:57+00:00\",\"dateModified\":\"2025-06-14T03:46:24+00:00\",\"description\":\"XDCR provides asynchronous replication and maintains data consistency across sites via eventual consistency. This blog focuses on XDCR architecture.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/understanding-xdcr-part-1\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/understanding-xdcr-part-1\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/understanding-xdcr-part-1\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"width\":1800,\"height\":630},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/understanding-xdcr-part-1\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Understanding Cross Data Center Replication (XDCR) &#8211; Part 1\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"name\":\"The Couchbase Blog\",\"description\":\"Couchbase, the NoSQL Database\",\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"width\":218,\"height\":34,\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/852cd95d6c8aa5ea6d4128643cc3c2b6\",\"name\":\"Chaitra Ramarao, Sr. Product Manager, Couchbase Inc.\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/459272ec41e39279e1f7784a97a6b106\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/3ce5e2ac49271390c080a82e055d92096b80f63a8f2ca4db5a52af1ace0b06f5?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/3ce5e2ac49271390c080a82e055d92096b80f63a8f2ca4db5a52af1ace0b06f5?s=96&d=mm&r=g\",\"caption\":\"Chaitra Ramarao, Sr. Product Manager, Couchbase Inc.\"},\"description\":\"Chaitra Ramarao is a Senior Product Manager at Couchbase, NoSQL database company, leading databases tooling, cross datacenter replication and partner integrations. Her prior gigs include data analytics product management for Kaiser Permanente and software development for Hewlett Packard. She has a Bachelors degree in ECE and a Masters from Carnegie Mellon in Engineering &amp; Technology Innovation Management.\",\"url\":\"https:\/\/www.couchbase.com\/blog\/author\/chaitra\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Cross Datacenter Replication (XDCR) Architecture | Couchbase","description":"XDCR provides asynchronous replication and maintains data consistency across sites via eventual consistency. This blog focuses on XDCR architecture.","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:\/\/www.couchbase.com\/blog\/understanding-xdcr-part-1\/","og_locale":"en_US","og_type":"article","og_title":"Understanding Cross Data Center Replication (XDCR) - Part 1","og_description":"XDCR provides asynchronous replication and maintains data consistency across sites via eventual consistency. This blog focuses on XDCR architecture.","og_url":"https:\/\/www.couchbase.com\/blog\/understanding-xdcr-part-1\/","og_site_name":"The Couchbase Blog","article_published_time":"2018-12-02T02:26:57+00:00","article_modified_time":"2025-06-14T03:46:24+00:00","og_image":[{"width":1726,"height":688,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/12\/Screen-Shot-2018-12-01-at-5.58.27-PM.png","type":"image\/png"}],"author":"Chaitra Ramarao, Sr. Product Manager, Couchbase Inc.","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Chaitra Ramarao, Sr. Product Manager, Couchbase Inc.","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/understanding-xdcr-part-1\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/understanding-xdcr-part-1\/"},"author":{"name":"Chaitra Ramarao, Sr. Product Manager, Couchbase Inc.","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/852cd95d6c8aa5ea6d4128643cc3c2b6"},"headline":"Understanding Cross Data Center Replication (XDCR) &#8211; Part 1","datePublished":"2018-12-02T02:26:57+00:00","dateModified":"2025-06-14T03:46:24+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/understanding-xdcr-part-1\/"},"wordCount":864,"commentCount":2,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/understanding-xdcr-part-1\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","keywords":["Big Data","Data Replication","distributed database","document database","Global deployment","High Availability","JSON","key value","NoSQL Database","Scalability"],"articleSection":["Application Design","Best Practices and Tutorials","Couchbase Architecture","Couchbase Capella","Couchbase Server","Cross Data Center Replication (XDCR)","High Performance"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/understanding-xdcr-part-1\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/understanding-xdcr-part-1\/","url":"https:\/\/www.couchbase.com\/blog\/understanding-xdcr-part-1\/","name":"Cross Datacenter Replication (XDCR) Architecture | Couchbase","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/understanding-xdcr-part-1\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/understanding-xdcr-part-1\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","datePublished":"2018-12-02T02:26:57+00:00","dateModified":"2025-06-14T03:46:24+00:00","description":"XDCR provides asynchronous replication and maintains data consistency across sites via eventual consistency. This blog focuses on XDCR architecture.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/understanding-xdcr-part-1\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/understanding-xdcr-part-1\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.couchbase.com\/blog\/understanding-xdcr-part-1\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","width":1800,"height":630},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/understanding-xdcr-part-1\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Understanding Cross Data Center Replication (XDCR) &#8211; Part 1"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"The Couchbase Blog","description":"Couchbase, the NoSQL Database","publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"The Couchbase Blog","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","width":218,"height":34,"caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/852cd95d6c8aa5ea6d4128643cc3c2b6","name":"Chaitra Ramarao, Sr. Product Manager, Couchbase Inc.","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/459272ec41e39279e1f7784a97a6b106","url":"https:\/\/secure.gravatar.com\/avatar\/3ce5e2ac49271390c080a82e055d92096b80f63a8f2ca4db5a52af1ace0b06f5?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/3ce5e2ac49271390c080a82e055d92096b80f63a8f2ca4db5a52af1ace0b06f5?s=96&d=mm&r=g","caption":"Chaitra Ramarao, Sr. Product Manager, Couchbase Inc."},"description":"Chaitra Ramarao is a Senior Product Manager at Couchbase, NoSQL database company, leading databases tooling, cross datacenter replication and partner integrations. Her prior gigs include data analytics product management for Kaiser Permanente and software development for Hewlett Packard. She has a Bachelors degree in ECE and a Masters from Carnegie Mellon in Engineering &amp; Technology Innovation Management.","url":"https:\/\/www.couchbase.com\/blog\/author\/chaitra\/"}]}},"authors":[{"term_id":9064,"user_id":6588,"is_guest":0,"slug":"chaitra","display_name":"Chaitra Ramarao, Sr. Product Manager, Couchbase Inc.","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/3ce5e2ac49271390c080a82e055d92096b80f63a8f2ca4db5a52af1ace0b06f5?s=96&d=mm&r=g","author_category":"","last_name":"Ramarao, Sr. Product Manager, Couchbase Inc.","first_name":"Chaitra","job_title":"","user_url":"","description":"Chaitra Ramarao is a Senior Product Manager at Couchbase, NoSQL database company, leading databases tooling, cross datacenter replication and partner integrations. Her prior gigs include data analytics product management for Kaiser Permanente and software development for Hewlett Packard. She has a Bachelors degree in ECE and a Masters from Carnegie Mellon in Engineering &amp; Technology Innovation Management."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts\/6070","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/users\/6588"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/comments?post=6070"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts\/6070\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/media\/13873"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/media?parent=6070"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/categories?post=6070"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/tags?post=6070"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/ppma_author?post=6070"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}