{"id":9506,"date":"2020-10-20T09:00:53","date_gmt":"2020-10-20T16:00:53","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=9506"},"modified":"2025-06-13T23:42:28","modified_gmt":"2025-06-14T06:42:28","slug":"cloud-to-edge-data-sync-couchbase-sync-gateway","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/cloud-to-edge-data-sync-couchbase-sync-gateway\/","title":{"rendered":"Cloud to Edge data sync with Couchbase Sync Gateway"},"content":{"rendered":"<p>The Couchbase <a href=\"https:\/\/www.couchbase.com\/blog\/announcing-couchbase-for-mobile-and-edge-computing\/\">Sync Gateway 2.8 release<\/a> announced support for enterprise-grade cloud-to-edge data sync. The new inter-Sync Gateway replication technology allows enterprise-grade scalable, secure sync between cloud and edge data centers in a distributed cloud environment to cater to the demands of Edge Computing applications.<\/p>\n<p>In this post, we provide an overview of the feature with some examples on how to configure your deployment. For more details, refer to the <a href=\"https:\/\/docs.couchbase.com\/sync-gateway\/current\/learn\/icr-sgreplicate.html\">documentation<\/a> pages.<\/p>\n<p>First, some use cases \u2026<\/p>\n<h2 id=\"usecases\">Use Cases<\/h2>\n<p>Distributed cloud deployments where data storage and processing is distributed and handled closer to the apps is growing in relevance as applications demand guaranteed high availability, real time responses, adherence to data privacy and regulatory restrictions and are dealing with massive volumes of data. This paradigm of computing is referred to as \u201cEdge Computing\u201d. You can learn more about it in this blog on <a href=\"https:\/\/www.couchbase.com\/blog\/architecting-edge-computing-solutions-couchbase\/\">\u201cArchitecting Edge Computing Solutions with Couchbase\u201d<\/a>.<\/p>\n<p>Here are a few examples of apps that benefit from such a distributed cloud architecture &#8211;<\/p>\n<ul>\n<li><strong>Retail<\/strong> :<br \/>\nLarge retail outlets will continue to service their customers even in case of internet outages by runnning off of servers it their local on-prem servers. <a href=\"https:\/\/www.bloomberg.com\/news\/articles\/2019-06-17\/a-50-million-glitch-target-takes-a-hit-from-register-outage\">Business downtime<\/a> is not only detrimental to customer experience, it can have long standing impact on the reputation as well. In this case, guaranteed high availability of apps and resiliency are key drivers<\/li>\n<li><strong>Travel<\/strong> :<br \/>\nPassengers on cruise ships can take advantage of all on-board services even when ships are disconnected from the Internet for days or months. In this case, the on-cruise data center will continue to serve the passengers en voyage. This is another example where guaranteed high availability of apps and resiliency are key drivers.<\/li>\n<li><strong>Hospitality<\/strong> :<br \/>\nHotel properties can ensure that guests are checked in even when there is an internet outage. The on-property Property Management Systems (PMS) will ensure that guest experience is not compromised. This is another example where guaranteed high availability of apps and resiliency are key drivers.<\/li>\n<li><strong>Healthcare<\/strong> :<br \/>\nPatient Monitoring Systems in hospitals can locally process patient data and take immediate remedial action. Real time data processing and data privacy are key drivers in this case.<\/li>\n<li><strong>IoT<\/strong> :<br \/>\nIoT apps are a key driver of Edge Computing architectures. Apps in this space generate massive volumes of data that need to be analyzed in real time. Transferring all that data to the backend servers imposes a lot of overhead on the network as well as the servers. Moreover, a lot of the data is typically ephemeral in nature and it does not make much sense to have to transfer it to remote servers just to be processed and discarded. As a specific example in the IIoT space, factories can monitor, collect and analyze sensor data from equipment locally for preventative maintenance. Only aggregated data is sent up the cloud data center. Real time data processing and cost savings from reduced bandwidth usage are main drivers in this case.<\/li>\n<\/ul>\n<h2 id=\"typicalcloudtoedgedeployment\">Typical Cloud to Edge Deployment<\/h2>\n<p>A typical deployment of a distributed cloud architecture using Couchbase is shown below.<\/p>\n<p>How does Couchbase fit in? You have Couchbase Server in the remote cloud data centers and is responsible for storing and processing data across all edge data centers. You then have a smaller footprint of Couchbase Server in each of the edge data centers. The size of the servers in the edge data centers will be significantly smaller than that of cloud data centers since it serves a smaller population of clients at the edge. Data local to the edge is processed by the on-prem Couchbase server cluster.<\/p>\n<p>But what about data movement? In other words, how does data between the cloud and edge remain in sync. That\u2019s where inter-Sync Gateway replication comes in. For this, you have Sync Gateway deployed at the cloud and edge data centers which is reponsible for replicating data. And then you have to consider that the sync is happening over the internet, which is untrustworthy. So you need to ensure that the data is encrypted and that there are strict security controls in place to ensure authorized access to data. Further more, you can have different access control policies deployed at the cloud and at the edge and can ensure that a compromised edge does not impact the cloud or the other edge data centers.<\/p>\n<figure><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2020\/10\/cluoud-to-edge-sync.png\" alt=\"\" \/><\/figure>\n<h2 id=\"deploymentconfigurationtip\">Deployment Configuration Tip<\/h2>\n<p>The Sync Gateway cluster on which the replication is initialized or scheduled is the \u201c<strong>Active Cluster<\/strong>\u201d and the remote Sync Gateway cluster that is the target of the replication is the \u201c<strong>Passive Cluster<\/strong>\u201d.<\/p>\n<p>If you have multiple replications to be configured between two clusters, it is recommended that you pick one cluster as the active cluster for all your replications. This is true regardless of the direction of your replication &#8211; push, pull or push-pull. This configuration makes it simpler to deploy, administer and troubleshoot your replications<\/p>\n<p>Particularly within the context of cloud-to-edge sync, we envision that the edge will be the active cluster initiating replications to the remote cloud cluster. It is likely that the edge clusters are not accessible over an external network.<\/p>\n<figure><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2020\/10\/active-passive-inter-sync-gateway-replication.png\" alt=\"\" \/><\/figure>\n<h2 id=\"attributesofthesynctechnology\">Attributes of the Sync Technology<\/h2>\n<p>Handling sync at scale over an untrusted network under unreliable network conditions is not an easy challenge. There are several considerations and here is an overview of how inter-Sync Gateway replication. Refer to the <a href=\"https:\/\/docs.couchbase.com\/sync-gateway\/current\/learn\/icr-sgreplicate.html\">documentation<\/a> for details<\/p>\n<table>\n<colgroup>\n<col style=\"text-align: left\" \/>\n<col style=\"text-align: left\" \/> <\/colgroup>\n<thead>\n<tr>\n<th style=\"text-align: left\">Feature<\/th>\n<th style=\"text-align: left\">inter-Sync Gateway Replication<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align: left\">Scalability<\/td>\n<td style=\"text-align: left\">The number of edge data can range from 10s to 100s to 1000s. The protocol is capable of scaling to handle that number of edges<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left\">Security<\/td>\n<td style=\"text-align: left\">The sync is happening over the internet, which is inherently untrustworthy. All data is encrypted over TLS and there are strict access controls in place to prevent unauthorized access to data. Further more, you can have different access control policies deployed at the cloud and at the edge and can ensure that a compromised edge does not impact the cloud or the other edge data centers.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left\">Network Resiliency<\/td>\n<td style=\"text-align: left\">Protocol implements an exponential backoff retry algorithm. The backoff period is configurable<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left\">Efficiency<\/td>\n<td style=\"text-align: left\">To optimize network bandwith usage and reduce transfer costs, the protocol supports delta sync \u2013 ability to sync parts of doc thave changed. The sync can operate in both continuous mode or one-shot, on demand mode. So apps are in control over when to sync data and for instance, they can choose to do so during off-peak hours<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left\">Data Conflicts<\/td>\n<td style=\"text-align: left\">Comprehensive conflict resolution strategy. Sync Gateway provides automatic conflict resolution support with out of box resolvers and you can define your own conflict resolver \u2013 similar to the way the sync function is defined, you can define a JS function as part of the Sync Gateway config file<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left\">Operational Ease<\/td>\n<td style=\"text-align: left\">High Availability of replications, Automatic load balancing\/distribution of replications uniformly across Sync Gateway nodes and a REST interface for remote administration and management<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left\">Flexible Topologies<\/td>\n<td style=\"text-align: left\">Hierarchical. The number of tiers in the hierarchy can be greater than 1 &#8211; for instance, cloud data center can talk to downstream data centers which in turn can talk to more downstream data centers.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2 id=\"sampleconfigurations\">Sample Configurations<\/h2>\n<p>In this section, we provide a few examples of typical replicator configurations.<\/p>\n<p>Replications are scoped to a database and can be configured in the <a href=\"https:\/\/docs.couchbase.com\/sync-gateway\/current\/refer\/config-properties.html#databases-this_db-replications\">Sync Gateway config file<\/a> and scheduled during launch or they can be initialized via the <a href=\"https:\/\/docs.couchbase.com\/sync-gateway\/current\/refer\/rest-api-admin.html#\/replication\">_replication<\/a> endpoint at any point after startup.<\/p>\n<p>By default, all nodes participate in replications. This implies that replications configured for a cluster of Sync Gateway nodes are uniformly distributed across all the nodes. A Sync Gateway node can be configured to opt out from participating in the replication using the <code>sgreplicate_enabled<\/code> config option.<\/p>\n<h3 id=\"pull-onlyone-shotreplicationwithdefaultconflictresolution\">Pull-only one-shot replication with default conflict resolution<\/h3>\n<p>In this example, a replication with Id <code>pull-from-target-oneshot<\/code> is setup to do a one-time pull of documents belonging to the channel <code>channel:storechannel<\/code> from the <code>stores<\/code> database at the <code>remote<\/code> endpoint. The documents are replicated to the local <code>my_local_store<\/code> database. The replicating user\u2019s credentials are specified via the <code>username<\/code> and <code>password<\/code> parameters.<\/p>\n<p>The replication is initially in stopped state and can be started at a later point via <a href=\"https:\/\/docs.couchbase.com\/sync-gateway\/current\/refer\/rest-api-admin.html#\/replication\/put__db___replicationStatus__replicationID__action__action_\"><code>replicationStatus<\/code><\/a> endpoint. Conflicts are automatically handled by Sync Gateway using <a href=\"https:\/\/docs.couchbase.com\/sync-gateway\/current\/refer\/refer-sgw-glossary.html#conflict-resolver-policies\">predefined policies<\/a>.<\/p>\n<pre class=\"lang:sh decode:true \"><code>curl -X PUT \r\n https:\/\/localhost:4985\/my_local_store\/_replication\/pull-from-target-oneshot \r\n -H 'Accept: application\/json' \r\n -H 'Authorization: Basic ZGVtbzpwYXNzd29yZA==' \r\n -H 'Content-Type: application\/json' \r\n -d ' {\r\n      \"replication_id\": \"pull-from-target-oneshot\",\r\n      \"remote\": \"https:\/\/remote-sgw-cluster:4984\/stores\",\r\n      \"direction\": \"pull\",\r\n      \"username\":\"store1\",\r\n      \"password\":\"sdfhdgsfh676767\",\r\n      \"continuous\": false,\r\n      \"filter\":\"sync_gateway\/bychannel\",\r\n      \"query_params\": {\r\n          \"channels\":[\"channel:storechannel\"]\r\n       },\r\n       \"initial_state\": \"stopped\"\r\n }'<\/code><\/pre>\n<h3 id=\"bi-directionalcontinuousreplicationwithout-of-boxconflictresolver\">Bi-directional continuous replication with out-of-box conflict resolver<\/h3>\n<p>In this example, a replication with Id <code>pushandpull-with-target-continuous<\/code> is setup to do a continuous push and pull documents belonging to the channel <code>channel:storechannel<\/code> from <code>stores<\/code> database at the <code>remote<\/code> endpoint. The documents are replicated to the local <code>my_local_store<\/code> database. The replicating user\u2019s credentials are specified via the <code>username<\/code> and <code>password<\/code> parameters.<\/p>\n<p>The replication is automatically started when scheduled &#8211; this is the default value of <code>initial_state<\/code> flag. In case of conflicts, the remote side is the winner.<\/p>\n<pre class=\"lang:sh decode:true \"><code>curl -X PUT \r\n https:\/\/localhost:4985\/my_local_store\/_replication\/pushandpull-with-target-continuous \r\n -H 'Accept: application\/json' \r\n -H 'Authorization: Basic ZGVtbzpwYXNzd29yZA==' \r\n -H 'Content-Type: application\/json' \r\n -d ' {\r\n      \"replication_id\": \"pushandpull-with-target-continuous \",\r\n      \"remote\": \"https:\/\/remote-sgw-cluster:4984\/stores\",\r\n      \"direction\": \"pushAndPull\",\r\n      \"username\":\"store1\",\r\n      \"password\":\"sdfhdgsfh676767\",\r\n      \"conflict_resolution_type\": \"remoteWins\",\r\n      \"filter\": \"sync_gateway\/bychannel\",\r\n      \"query_params\": {\r\n         \"channels\":[\"channel:storechannel\"]\r\n      }\r\n }'\r\n<\/code><\/pre>\n<h3 id=\"bi-directionalcontinuousreplicationwithcustomconflictresolver\">Bi-directional continuous replication with custom conflict resolver<\/h3>\n<p>This example is identical to the previous case except that we associate a custom conflict resolver with the replicator. Now everytime, Sync Gateway detects a conflict during replication, the conflict resolver is invoked with the conflicting revisions. The resolver has access to full document body and metadata which can then be used for resolving the conflict. Of course, you can choose to return either of the conflicting revision to implement the equivalent of the \u201cLocalWins\u201d or \u201cRemoteWins\u201d strategy.<\/p>\n<p>BTW, don\u2019t get too attached with the details of what\u2019s going on in the resolver or it\u2019s accuracy\/efficiency. I am sure there are better ways to do this in Javascipt &#8211; this is just to demonstrate the concept.<\/p>\n<pre class=\"lang:sh decode:true \"><code>curl -X PUT \r\n https:\/\/localhost:4985\/my_local_store\/_replication\/pushandpull-with-target-continuous \r\n -H 'Accept: application\/json' \r\n -H 'Authorization: Basic ZGVtbzpwYXNzd29yZA==' \r\n -H 'Content-Type: application\/json' \r\n -d ' {\r\n      \"replication_id\": \"pushandpull-with-target-continuous \",\r\n      \"remote\": \"https:\/\/remote-sgw-cluster:4984\/stores\",\r\n      \"direction\": \"pushAndPull\",\r\n      \"username\":\"store1\",\r\n      \"password\":\"sdfhdgsfh676767\",\r\n      \"custom_conflict_resolver\": \"function(conflict) {\r\n         function(conflict) {\r\n            if ( (conflict.LocalDocument.type != null) &amp;&amp; (conflict.RemoteDocument.type != null) &amp;&amp;\r\n                   (conflict.LocalDocument.type == \\\"foo\\\"))\r\n           {\r\n             return defaultPolicy(conflict);\r\n           } else {\r\n             var remoteDoc = conflict.RemoteDocument;\r\n             var localDoc = conflict.LocalDocument;\r\n             var mergedDoc = extend({}, localDoc, remoteDoc);\r\n             return mergedDoc;\r\n             function extend(target) {\r\n                 var sources = [].slice.call(arguments, 1);\r\n                 sources.forEach(function (source) {\r\n                 for (var prop in source) {\r\n                     target[prop] = source[prop];\r\n                 }\r\n            });\r\n            return target;\r\n         }\r\n      }\r\n    }\",\r\n    \"filter\": \"sync_gateway\/bychannel\",\r\n    \"query_params\": {\r\n        \"channels\":[\"channel:storechannel\"]\r\n     }\r\n }'\r\n<\/code><\/pre>\n<p>Ofcourse there are plenty of other <a href=\"https:\/\/docs.couchbase.com\/sync-gateway\/current\/refer\/config-properties.html#databases-this_db-replications\">configuration<\/a> options to choose from that will allow you to customize it to suit your application needs. You can refer to our documentation for the details.<\/p>\n<h2 id=\"monitoringreplications\">Monitoring Replications<\/h2>\n<p>Once your configurations are up and running, you can monitor it through via the <a href=\"https:\/\/docs.couchbase.com\/sync-gateway\/current\/refer\/rest-api-admin.html#\/replication\/get__db___replicationStatus__queryString_\">replicationStatus<\/a> endpoint. In 2.8, we also released a new metrics endpoint in Developer Preview mode. This endpoint also exports stats in Prometheus format which would make it very easy to monitor with Prometheus and visualize using Grafana. You can learn more about this in an upcoming <a href=\"https:\/\/www.couchbase.com\/blog\/monitoring-and-visualization-of-couchbase-sync-gateway-with-prometheus-and-grafana\/\">blog<\/a>.<\/p>\n<h2 id=\"whataboutsg-replicate\">What about \u201cSG-Replicate\u201d?<\/h2>\n<p>If you have been working with Sync gateway, you are probably familiar with the <a href=\"https:\/\/docs.couchbase.com\/sync-gateway\/current\/learn\/icr-sgreplicate-sgr1.html\">SG-Replicate<\/a> which can be used for replication between Sync Gateway nodes in different clusters. The new version of the protocol, which is websockets based is redesigned from the ground-up to offer a number of enterprise-grade features such as automatic load-balancing of replications across participating Sync Gateway nodes, High Availability (HA), built-in automatic conflict resolution with custom conflict resolvers, delta sync support, significant improvements in scalability and performance and more.<\/p>\n<p>While \u201cSG-Replicate\u201d continue to remain supported in 2.8, it is deprecated and existing apps should migrate to the new version of the inter-Sync Gateway replication technology.<\/p>\n<h2 id=\"whatnext\">What Next<\/h2>\n<p>Couchbase Sync Gateway\u2019s cloud-to-edge sync solution is secure, scalable and easy to configure and manage. sync is the only peer-to-peer database sync solution that allows clients to directly communicate with each other in disconnected environments.<\/p>\n<p>You can <a href=\"https:\/\/www.couchbase.com\/downloads?family=sync-gateway\">download Sync Gateway<\/a> and evauate the functionality for free.<\/p>\n<p>If you want to dive into the details, here\u2019s where you can find more information<br \/>\n&#8211; <a href=\"https:\/\/connectonline.influitive.com\/forum\/t\/using-inter-sync-gateway-replication\/261\">Connect Video with Demo: Using inter-Sync Gateway Replication<\/a><br \/>\n&#8211; <a href=\"https:\/\/docs.couchbase.com\/sync-gateway\/current\/learn\/icr-sgreplicate.html\">Documentation: inter-Sync Gateway Replication<\/a><br \/>\n&#8211; <a href=\"https:\/\/www.couchbase.com\/solutions\/edge-computing\/\">Solutions Page: Edge Computing<\/a><\/p>\n<p>The <a href=\"https:\/\/www.couchbase.com\/forums\/\">Couchbase Forums<\/a> is a great place to reach out with questions. Please leave a comment below or feel free to reach out to me via <a href=\"https:\/\/twitter.com\/rajagp\">Twitter<\/a>\u00a0or <a href=\"mailto:priya.rajagopal@couchbase.com\">email me<\/a><\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The Couchbase Sync Gateway 2.8 release announced support for enterprise-grade cloud-to-edge data sync. The new inter-Sync Gateway replication technology allows enterprise-grade scalable, secure sync between cloud and edge data centers in a distributed cloud environment to cater to the demands [&hellip;]<\/p>\n","protected":false},"author":1423,"featured_media":9509,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1810,7666,2389,2366],"tags":[2358],"ppma_author":[8948],"class_list":["post-9506","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-couchbase-mobile","category-edge-computing","category-solutions","category-sync-gateway","tag-couchbase-mobile-2-x"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.0 (Yoast SEO v26.0) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Cloud to Edge data sync with Couchbase Sync Gateway - The Couchbase Blog<\/title>\n<meta name=\"description\" content=\"Couchbase Sync Gateway supports scalable and secure synchronization of data from cloud to the edge in a distributed clouud environments\" \/>\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\/cloud-to-edge-data-sync-couchbase-sync-gateway\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Cloud to Edge data sync with Couchbase Sync Gateway\" \/>\n<meta property=\"og:description\" content=\"Couchbase Sync Gateway supports scalable and secure synchronization of data from cloud to the edge in a distributed clouud environments\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/cloud-to-edge-data-sync-couchbase-sync-gateway\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2020-10-20T16:00:53+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T06:42:28+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/10\/Cloud-to-Edge-data-sync-with-Couchbase-Sync-Gateway.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"627\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Priya Rajagopal, Senior Director, Product Management\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/10\/Cloud-to-Edge-data-sync-with-Couchbase-Sync-Gateway.png\" \/>\n<meta name=\"twitter:creator\" content=\"@rajagp\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Priya Rajagopal, Senior Director, Product Management\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/cloud-to-edge-data-sync-couchbase-sync-gateway\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/cloud-to-edge-data-sync-couchbase-sync-gateway\/\"},\"author\":{\"name\":\"Priya Rajagopal, Senior Director, Product Management\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/c2da90e57717ee4970c48a87a131ac2c\"},\"headline\":\"Cloud to Edge data sync with Couchbase Sync Gateway\",\"datePublished\":\"2020-10-20T16:00:53+00:00\",\"dateModified\":\"2025-06-14T06:42:28+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/cloud-to-edge-data-sync-couchbase-sync-gateway\/\"},\"wordCount\":1865,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/cloud-to-edge-data-sync-couchbase-sync-gateway\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/10\/edge-data-processing.jpeg\",\"keywords\":[\"couchbase mobile 2.x\"],\"articleSection\":[\"Couchbase Mobile\",\"Edge computing\",\"Solutions\",\"Sync Gateway\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/cloud-to-edge-data-sync-couchbase-sync-gateway\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/cloud-to-edge-data-sync-couchbase-sync-gateway\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/cloud-to-edge-data-sync-couchbase-sync-gateway\/\",\"name\":\"Cloud to Edge data sync with Couchbase Sync Gateway - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/cloud-to-edge-data-sync-couchbase-sync-gateway\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/cloud-to-edge-data-sync-couchbase-sync-gateway\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/10\/edge-data-processing.jpeg\",\"datePublished\":\"2020-10-20T16:00:53+00:00\",\"dateModified\":\"2025-06-14T06:42:28+00:00\",\"description\":\"Couchbase Sync Gateway supports scalable and secure synchronization of data from cloud to the edge in a distributed clouud environments\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/cloud-to-edge-data-sync-couchbase-sync-gateway\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/cloud-to-edge-data-sync-couchbase-sync-gateway\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/cloud-to-edge-data-sync-couchbase-sync-gateway\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/10\/edge-data-processing.jpeg\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/10\/edge-data-processing.jpeg\",\"width\":1200,\"height\":628,\"caption\":\"Doctor Operating Using Robot-Assisted Surgery\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/cloud-to-edge-data-sync-couchbase-sync-gateway\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Cloud to Edge data sync with Couchbase Sync Gateway\"}]},{\"@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\/c2da90e57717ee4970c48a87a131ac2c\",\"name\":\"Priya Rajagopal, Senior Director, Product Management\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/4b50a54778b979d8c345b036ab138734\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/acfb2349788955262cd069497a9e7bdb0e97c26326f2e55811e7c1174e9ef1be?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/acfb2349788955262cd069497a9e7bdb0e97c26326f2e55811e7c1174e9ef1be?s=96&d=mm&r=g\",\"caption\":\"Priya Rajagopal, Senior Director, Product Management\"},\"description\":\"Priya Rajagopal is a Senior Director of Product Management at Couchbase responsible for developer platforms for the cloud and the edge. She has been professionally developing software for over 20 years in several technical and product leadership positions, with 10+ years focused on mobile technologies. As a TISPAN IPTV standards delegate, she was a key contributor to the IPTV standards specifications. She has 22 patents in the areas of networking and platform security.\",\"sameAs\":[\"https:\/\/x.com\/rajagp\"],\"url\":\"https:\/\/www.couchbase.com\/blog\/author\/priya-rajagopalcouchbase-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Cloud to Edge data sync with Couchbase Sync Gateway - The Couchbase Blog","description":"Couchbase Sync Gateway supports scalable and secure synchronization of data from cloud to the edge in a distributed clouud environments","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\/cloud-to-edge-data-sync-couchbase-sync-gateway\/","og_locale":"en_US","og_type":"article","og_title":"Cloud to Edge data sync with Couchbase Sync Gateway","og_description":"Couchbase Sync Gateway supports scalable and secure synchronization of data from cloud to the edge in a distributed clouud environments","og_url":"https:\/\/www.couchbase.com\/blog\/cloud-to-edge-data-sync-couchbase-sync-gateway\/","og_site_name":"The Couchbase Blog","article_published_time":"2020-10-20T16:00:53+00:00","article_modified_time":"2025-06-14T06:42:28+00:00","og_image":[{"width":1200,"height":627,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/10\/Cloud-to-Edge-data-sync-with-Couchbase-Sync-Gateway.png","type":"image\/png"}],"author":"Priya Rajagopal, Senior Director, Product Management","twitter_card":"summary_large_image","twitter_image":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/10\/Cloud-to-Edge-data-sync-with-Couchbase-Sync-Gateway.png","twitter_creator":"@rajagp","twitter_misc":{"Written by":"Priya Rajagopal, Senior Director, Product Management","Est. reading time":"10 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/cloud-to-edge-data-sync-couchbase-sync-gateway\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/cloud-to-edge-data-sync-couchbase-sync-gateway\/"},"author":{"name":"Priya Rajagopal, Senior Director, Product Management","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/c2da90e57717ee4970c48a87a131ac2c"},"headline":"Cloud to Edge data sync with Couchbase Sync Gateway","datePublished":"2020-10-20T16:00:53+00:00","dateModified":"2025-06-14T06:42:28+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/cloud-to-edge-data-sync-couchbase-sync-gateway\/"},"wordCount":1865,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/cloud-to-edge-data-sync-couchbase-sync-gateway\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/10\/edge-data-processing.jpeg","keywords":["couchbase mobile 2.x"],"articleSection":["Couchbase Mobile","Edge computing","Solutions","Sync Gateway"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/cloud-to-edge-data-sync-couchbase-sync-gateway\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/cloud-to-edge-data-sync-couchbase-sync-gateway\/","url":"https:\/\/www.couchbase.com\/blog\/cloud-to-edge-data-sync-couchbase-sync-gateway\/","name":"Cloud to Edge data sync with Couchbase Sync Gateway - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/cloud-to-edge-data-sync-couchbase-sync-gateway\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/cloud-to-edge-data-sync-couchbase-sync-gateway\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/10\/edge-data-processing.jpeg","datePublished":"2020-10-20T16:00:53+00:00","dateModified":"2025-06-14T06:42:28+00:00","description":"Couchbase Sync Gateway supports scalable and secure synchronization of data from cloud to the edge in a distributed clouud environments","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/cloud-to-edge-data-sync-couchbase-sync-gateway\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/cloud-to-edge-data-sync-couchbase-sync-gateway\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.couchbase.com\/blog\/cloud-to-edge-data-sync-couchbase-sync-gateway\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/10\/edge-data-processing.jpeg","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/10\/edge-data-processing.jpeg","width":1200,"height":628,"caption":"Doctor Operating Using Robot-Assisted Surgery"},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/cloud-to-edge-data-sync-couchbase-sync-gateway\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Cloud to Edge data sync with Couchbase Sync Gateway"}]},{"@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\/c2da90e57717ee4970c48a87a131ac2c","name":"Priya Rajagopal, Senior Director, Product Management","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/4b50a54778b979d8c345b036ab138734","url":"https:\/\/secure.gravatar.com\/avatar\/acfb2349788955262cd069497a9e7bdb0e97c26326f2e55811e7c1174e9ef1be?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/acfb2349788955262cd069497a9e7bdb0e97c26326f2e55811e7c1174e9ef1be?s=96&d=mm&r=g","caption":"Priya Rajagopal, Senior Director, Product Management"},"description":"Priya Rajagopal is a Senior Director of Product Management at Couchbase responsible for developer platforms for the cloud and the edge. She has been professionally developing software for over 20 years in several technical and product leadership positions, with 10+ years focused on mobile technologies. As a TISPAN IPTV standards delegate, she was a key contributor to the IPTV standards specifications. She has 22 patents in the areas of networking and platform security.","sameAs":["https:\/\/x.com\/rajagp"],"url":"https:\/\/www.couchbase.com\/blog\/author\/priya-rajagopalcouchbase-com\/"}]}},"authors":[{"term_id":8948,"user_id":1423,"is_guest":0,"slug":"priya-rajagopalcouchbase-com","display_name":"Priya Rajagopal, Senior Director, Product Management","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/acfb2349788955262cd069497a9e7bdb0e97c26326f2e55811e7c1174e9ef1be?s=96&d=mm&r=g","author_category":"","last_name":"Rajagopal, Senior Director, Product Management","first_name":"Priya","job_title":"","user_url":"","description":"Priya Rajagopal is a Senior Director of Product Management at Couchbase responsible for developer platforms for the cloud and the edge. She has been professionally developing software for over 20 years in several technical and product leadership positions, with 10+ years focused on mobile technologies. As a TISPAN IPTV standards delegate, she was a key contributor to the IPTV standards specifications. She has 22 patents in the areas of networking and platform security."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts\/9506","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\/1423"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/comments?post=9506"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts\/9506\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/media\/9509"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/media?parent=9506"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/categories?post=9506"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/tags?post=9506"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/ppma_author?post=9506"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}