{"id":13602,"date":"2022-07-28T10:02:34","date_gmt":"2022-07-28T17:02:34","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=13602"},"modified":"2023-12-22T14:52:32","modified_gmt":"2023-12-22T22:52:32","slug":"capella-app-services-cloud-offline-data-sync","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/capella-app-services-cloud-offline-data-sync\/","title":{"rendered":"Capella App Services Expands Cloud Support for Fully Managed Offline-first Data Sync"},"content":{"rendered":"<p><span style=\"font-weight: 400\">We\u2019re pleased to announce the general availability of <\/span><a href=\"https:\/\/www.couchbase.com\/products\/capella\/app-services\/\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400\">Capella App Services<\/span><\/a><span style=\"font-weight: 400\"> on Google Cloud Platform (GCP). The cloud expansion comes on the heels of the recent public launch of <\/span><a href=\"https:\/\/www.couchbase.com\/blog\/capella-app-services-mobile-iot\/\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400\">Capella App Services on AWS<\/span><\/a><span style=\"font-weight: 400\">.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Capella App Services is a <a href=\"https:\/\/www.couchbase.com\/fully-managed\/\">fully managed<\/a> application backend that brings the power of <\/span><a href=\"https:\/\/www.couchbase.com\/products\/mobile\/\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400\">Couchbase Mobile<\/span><\/a><span style=\"font-weight: 400\"> to Capella, our fully managed Couchbase as-a-service offering. Couchbase Mobile is the industry leading <a href=\"https:\/\/www.couchbase.com\/blog\/offline-first-more-reliable-mobile-apps\/\">offline-first<\/a> data sync platform for mobile, desktop and embedded applications. Since its launch in 2014, Couchbase Mobile, which includes the <\/span><a href=\"https:\/\/docs.couchbase.com\/couchbase-lite\/current\/index.html\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400\">Couchbase Lite<\/span><\/a><span style=\"font-weight: 400\"> embedded database and <\/span><a href=\"https:\/\/docs.couchbase.com\/sync-gateway\/current\/introduction.html\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400\">Sync Gateway<\/span><\/a><span style=\"font-weight: 400\">, has powered a vast number of business critical enterprise applications.<\/span><\/p>\n<p><span style=\"font-weight: 400\">In this post, we will provide an overview of Capella App Services and discuss the salient features, comparing it with corresponding self managed Couchbase Mobile deployments.\u00a0<\/span><\/p>\n<h2><b>Try for Free Today!<\/b><\/h2>\n<p><span style=\"font-weight: 400\">You can try Capella App Services for free for 30-days where you will have the opportunity to evaluate all the capabilities discussed in this post.<\/span><\/p>\n<ul>\n<li style=\"list-style-type: none\">\n<ul>\n<li><a href=\"https:\/\/cloud.couchbase.com\/sign-up\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400\">Free Self-Service Trial<\/span><\/a><\/li>\n<li><a href=\"https:\/\/docs.couchbase.com\/cloud\/get-started\/configuring-app-services.html\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400\">Getting Started with App Services<\/span><\/a><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h2><b>App Services: Overview<\/b><\/h2>\n<h3><b>System Architecture<\/b><\/h3>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-13603\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2022\/07\/capella-app-services-system-architecture.png\" alt=\"Capella App Services System Architecture\" width=\"800\" height=\"619\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/07\/capella-app-services-system-architecture.png 800w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/07\/capella-app-services-system-architecture-300x232.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/07\/capella-app-services-system-architecture-768x594.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/07\/capella-app-services-system-architecture-20x15.png 20w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/p>\n<p><span style=\"font-weight: 400\">When you create an <\/span><b>App Service<\/b><span style=\"font-weight: 400\"> and associate it with a Couchbase Server cluster, you are effectively extending or enabling it for data sync. A Couchbase server cluster can only be linked to one App Service.<\/span><\/p>\n<p><span style=\"font-weight: 400\">At a high level, behind the scenes, when an App Service is created, a cluster of Sync Gateway nodes is deployed in the same virtual private cloud network as the corresponding server cluster. Communication between the App Services cluster and backing Couchbase server cluster is secured using TLS and x.509 cert based authentication. The Sync Gateway cluster is fronted by a Load Balancer that balances incoming client requests across the App Services nodes.<\/span><\/p>\n<p><span style=\"font-weight: 400\">An App Service can handle multiple client applications, each of which is represented by an <\/span><b>App Endpoint<\/b><span style=\"font-weight: 400\">. Conceptually, an App Endpoint represents the instance of your application on the App Service. Each App Endpoint is backed by a server bucket. So if you have multiple applications then each of them would have its own App Endpoint.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400\">Mobile, desktop and web client apps can access and sync data by connecting to the corresponding App Endpoint.\u00a0<\/span><\/p>\n<h3><b>App Endpoint Connection Points<\/b><\/h3>\n<p><span style=\"font-weight: 400\">When it comes to options for connecting clients to an App Endpoint, there are multiple options. The choice depends on the type of application and use case.<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-13604\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2022\/07\/capella-app-services-connection-endpoints.png\" alt=\"Capella App Services connection endpoints\" width=\"800\" height=\"467\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/07\/capella-app-services-connection-endpoints.png 800w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/07\/capella-app-services-connection-endpoints-300x175.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/07\/capella-app-services-connection-endpoints-768x448.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/07\/capella-app-services-connection-endpoints-20x12.png 20w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/p>\n<p style=\"padding-left: 40px\"><b>Secure websockets public URL<\/b><\/p>\n<p style=\"padding-left: 40px\"><span style=\"font-weight: 400\">Offline-first sync is the ability for apps to run in offline mode in the face of temporary or extended network disruptions and to sync data with the backend servers when connectivity is restored. Mobile, desktop and embedded apps powered by <\/span><a href=\"https:\/\/docs.couchbase.com\/couchbase-lite\/current\/index.html\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400\">Couchbase Lite<\/span><\/a><span style=\"font-weight: 400\"> can locally store and access data in disconnected mode and sync data with App Service when there is connectivity. With the Internet being inherently unreliable, the <\/span><a href=\"https:\/\/www.couchbase.com\/products\/mobile\/\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400\">use cases<\/span><\/a><span style=\"font-weight: 400\"> for offline-first data sync are vast and varied.<\/span><\/p>\n<p style=\"padding-left: 40px\"><b>Secure Public REST API<\/b><\/p>\n<p style=\"padding-left: 40px\"><span style=\"font-weight: 400\">Applications can also access data securely over a public REST endpoint. This is useful in cases where there is reliable network connectivity and so there isn\u2019t a need for offline storage or in cases where the apps are running on hardware that don\u2019t have local storage for running a local embedded database like Couchbase Lite.<\/span><\/p>\n<p style=\"padding-left: 40px\"><b>Secure Admin REST API<\/b><\/p>\n<p style=\"padding-left: 40px\"><span style=\"font-weight: 400\">Admin apps can be granted authenticated access to the Admin REST API in order to programmatically create and manage users, roles and sessions. Admin apps are typically hosted in the cloud backend. An example of an admin app is a login service that handles custom authentication and is responsible for registering users via the secure Admin REST API following successful user authentication.<\/span><\/p>\n<p style=\"padding-left: 40px\"><b>Secure Metrics REST API<\/b><\/p>\n<p style=\"padding-left: 40px\"><span style=\"font-weight: 400\">Monitoring frameworks like Prometheus can access stats exposed via the metrics REST endpoint. In addition, App Services also supports a dashboard of common operational stats<\/span><span style=\"font-weight: 400\">.<\/span><\/p>\n<h2><b>User Journey<\/b><\/h2>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-13605\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2022\/07\/capella-app-services-user-journey.png\" alt=\"Capella App Services user journey\" width=\"800\" height=\"413\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/07\/capella-app-services-user-journey.png 800w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/07\/capella-app-services-user-journey-300x155.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/07\/capella-app-services-user-journey-768x396.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/07\/capella-app-services-user-journey-20x10.png 20w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/p>\n<p><b>Prerequisite<\/b><span style=\"font-weight: 400\">: App Services requires a Couchbase Capella server cluster. So follow the <\/span><a href=\"https:\/\/docs.couchbase.com\/cloud\/clusters\/create-cluster.html\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400\">steps<\/span><\/a><span style=\"font-weight: 400\"> to create a Couchbase Capella server cluster and set up a bucket.\u00a0<\/span><\/p>\n<h3><b>Prepare<\/b><\/h3>\n<p style=\"padding-left: 40px\"><strong>Launch App Services<\/strong><\/p>\n<p style=\"padding-left: 40px\"><span style=\"font-weight: 400\">When you create an App Service and associate it with a server cluster, you are effectively enabling it for data sync. While creating an App Service, you give it a name, designate an\u00a0 associated Capella cluster, then choose the deployment configuration which includes the number of nodes and type of compute (RAM\/core).<\/span><\/p>\n<p style=\"padding-left: 40px\"><strong>Create App Endpoints<\/strong><\/p>\n<p style=\"padding-left: 40px\"><span style=\"font-weight: 400\">App Endpoints represent the instance of your application on an App Service. You can create multiple App Endpoints on an App Service, each backed by a unique bucket in the corresponding Couchbase Server cluster. By default, all documents in the corresponding bucket are imported by the App Endpoint.<\/span><\/p>\n<p style=\"padding-left: 40px\"><strong>Configure App Endpoints<\/strong><\/p>\n<p style=\"padding-left: 40px\"><span style=\"font-weight: 400\">When the App Endpoint is created, it is set up in offline mode. This gives users the opportunity to complete the security configuration of the App Endpoint before exposing it to applications.<\/span><\/p>\n<p style=\"padding-left: 80px\"><b>Authentication Provider<\/b><\/p>\n<p style=\"padding-left: 80px\"><span style=\"font-weight: 400\">Authentication providers define how users are authenticated with the app services. A default auth provider of basic auth is selected for you during App Endpoint creation. So you can skip this config if the default option works for your application.\u00a0<\/span><\/p>\n<p style=\"padding-left: 80px\"><span style=\"font-weight: 400\">Capella supports following modes of authentication:<\/span><\/p>\n<ul>\n<li style=\"list-style-type: none\">\n<ul>\n<li style=\"list-style-type: none\">\n<ul>\n<li style=\"list-style-type: none\">\n<ul>\n<li style=\"font-weight: 400\"><i><span style=\"font-weight: 400\">Basic Auth<\/span><\/i><span style=\"font-weight: 400\">: This is where the app users are authenticated using username and password credentials are Base64 encoded and passed in as part of the authorization Header of HTTP request<\/span><\/li>\n<li style=\"font-weight: 400\"><i><span style=\"font-weight: 400\">Open ID Connect(OIDC)<\/span><\/i><span style=\"font-weight: 400\">: App users are authenticated against a third-party Identity Provider that is registered with App Endpoint. This is implemented using <\/span><a href=\"https:\/\/www.couchbase.com\/blog\/oidc-implicit-flow-client-authentication-couchbase-sync-gateway\/\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400\">OIDC Implicit flow<\/span><\/a><span style=\"font-weight: 400\">.<\/span><\/li>\n<li style=\"font-weight: 400\"><i><span style=\"font-weight: 400\">Anonymous<\/span><\/i><span style=\"font-weight: 400\">: In this mode, we allow unauthenticated read-only access to data. This mode could be useful when your app is only dealing with public static data<\/span><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p style=\"padding-left: 80px\"><b>User Management<\/b><\/p>\n<p style=\"padding-left: 80px\"><span style=\"font-weight: 400\">With the exception of \u201cAnonymous\u201d mode, all client side access must be authenticated with suitable user credentials. The choice of how users (and roles) are created depends on the Authentication Provider that is configured.<\/span><\/p>\n<ul>\n<li style=\"list-style-type: none\">\n<ul>\n<li style=\"list-style-type: none\">\n<ul>\n<li style=\"list-style-type: none\">\n<ul>\n<li style=\"font-weight: 400\"><i><span style=\"font-weight: 400\">Basic Auth<\/span><\/i><span style=\"font-weight: 400\">:\u00a0 Users are created via the Capella web UI or via Admin REST endpoint <\/span><\/li>\n<li style=\"font-weight: 400\"><i><span style=\"font-weight: 400\">Open ID Connect (OIDC)<\/span><\/i><span style=\"font-weight: 400\">: By enabling the \u201cauto-register\u201d option when configuring OIDC Provider, users will be automatically created on App Service after successful authentication<\/span><span style=\"font-weight: 400\">.<\/span><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p style=\"padding-left: 80px\"><b>Access Control<\/b><b><br \/>\n<\/b><b><br \/>\n<\/b><span style=\"font-weight: 400\">Access Control is implemented using the <\/span><a href=\"https:\/\/docs.couchbase.com\/sync-gateway\/current\/access-control-concepts.html\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400\">channel based access control model<\/span><\/a><span style=\"font-weight: 400\"> of Couchbase Mobile. Access Control specifies who has access to what data. This is specified via a Javascript access control function. Read access control is at the granularity of a document while write access control is at the granularity of a field.\u00a0<\/span><\/p>\n<h3><b>Connect<\/b><\/h3>\n<p><span style=\"font-weight: 400\">After completing security setup for the App Endpoint, un-pause the App Endpoint to bring it online. Once online, apps can be connected using any of the Connection points discussed earlier.<\/span><\/p>\n<h3><b>Operate<\/b><\/h3>\n<p><span style=\"font-weight: 400\">Once your App Service is operational, you can administer the App Service and App Endpoints and change the configuration to meet the evolving needs of the apps.<\/span><\/p>\n<p style=\"padding-left: 40px\"><strong>Monitoring<\/strong><\/p>\n<p style=\"padding-left: 40px\"><span style=\"font-weight: 400\">Metrics dashboards provide insights into resource utilization of the App Service as well as the operational state of the App Endpoints. These include stats such as the number of documents read\/written, error counts, number of active replications, etc.<\/span><\/p>\n<p style=\"padding-left: 40px\"><strong>Activity Log<\/strong><\/p>\n<p style=\"padding-left: 40px\"><span style=\"font-weight: 400\">All key system events of type info, warning and error are recorded in the activity center. Users are also alerted to key events that may need attention such as significantly high memory utilization over an extended period of time.<\/span><\/p>\n<p style=\"padding-left: 40px\"><strong>On Demand Scaling<\/strong><\/p>\n<p style=\"padding-left: 40px\"><span style=\"font-weight: 400\">To keep up with the evolving needs of the app, users can scale App Services horizontally and\/or vertically by changing the number of nodes and\/or compute type.<\/span><\/p>\n<h2><b>Capella App Services and Couchbase Mobile<\/b><\/h2>\n<p><span style=\"font-weight: 400\">If you are an existing Couchbase Mobile user, then this cheat sheet may be relevant to you. Even if you have never used Couchbase Mobile but are curious about how Couchbase Mobile powers App Services, then read on.<\/span><\/p>\n<table>\n<tbody>\n<tr>\n<td><b>Term<\/b><\/td>\n<td><b>Description within Capella<\/b><\/td>\n<td><b>Couchbase Mobile Mapping<\/b><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400\">App Service<\/span><\/td>\n<td><span style=\"font-weight: 400\">An instance of Capella App Services backend. By linking an App Service to Server cluster, your cluster is now extended for mobile sync.<\/span><\/td>\n<td><span style=\"font-weight: 400\">Cluster of Sync Gateway nodes connected to a Couchbase Server cluster<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400\">App Endpoint<\/span><\/td>\n<td><span style=\"font-weight: 400\">An instance of application on App Service that represents the endpoint to which the client app connects. Every App Endpoint is backed by a Server bucket.<\/span><\/td>\n<td><span style=\"font-weight: 400\">Sync Gateway Database<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400\">Channel<\/span><\/td>\n<td><span style=\"font-weight: 400\">A tag associated with a document processed by an App Service. The channel associated with the document determines the routing and access control policies of the document.<\/span><\/td>\n<td><span style=\"font-weight: 400\">Sync Gateway Channel<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400\">App User<\/span><\/td>\n<td><span style=\"font-weight: 400\">End user of the app that is accessing or syncing data over a public URL endpoint. A user is granted access to one or more channels.<\/span><\/td>\n<td><span style=\"font-weight: 400\">Sync Gateway User<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400\">App Role<\/span><\/td>\n<td><span style=\"font-weight: 400\">Logical grouping of App Users. A role is granted access to one or more channels.<\/span><\/td>\n<td><span style=\"font-weight: 400\">Sync Gateway Role<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400\">Authentication Provider<\/span><\/td>\n<td><span style=\"font-weight: 400\">The mechanism by when App Users authenticate with App Endpoint. Options include Basic (default), OIDC Implicit Flows, Anonymous Read only.<\/span><\/td>\n<td><span style=\"font-weight: 400\">Basic (default), Read\/write GUEST access, OIDC Implicit &amp; Authorization Flows<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400\">Access Control Function<\/span><\/td>\n<td><span style=\"font-weight: 400\">Javascript Function configured on App Endpoint that specifies read\/write access of documents<\/span><\/td>\n<td><span style=\"font-weight: 400\">Sync Function<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400\">Import Filter Function<\/span><\/td>\n<td><span style=\"font-weight: 400\">Javascript Function configured on Endpoint that specifies the subset of server bucket documents that are processed by the App Service and available for mobile sync<\/span><\/td>\n<td><span style=\"font-weight: 400\">Import Filter Function<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2><b>What\u2019s next<\/b><\/h2>\n<p><span style=\"font-weight: 400\">The proof is in the pudding. So <\/span><a href=\"https:\/\/cloud.couchbase.com\/sign-up\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400\">try<\/span><\/a><span style=\"font-weight: 400\"> Capella App Services for free today. Stay tuned for a short demo of the major concepts discussed in this tutorial.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Here are some helpful resources:<\/span><\/p>\n<ul>\n<li style=\"list-style-type: none\">\n<ul>\n<li><span style=\"font-weight: 400\">&#8211;<\/span><a href=\"https:\/\/docs.couchbase.com\/cloud\/app-services\/deployment\/creating-an-app-service.html\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400\">Capella App Services Documentation<\/span><\/a><\/li>\n<li><a href=\"https:\/\/www.couchbase.com\/developers\/\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400\">Developer Portal<\/span><\/a><span style=\"font-weight: 400\"> for learning paths and tutorials on Capella and Couchbase Mobile<\/span><\/li>\n<li><a href=\"https:\/\/www.couchbase.com\/products\/capella\/app-services\/\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400\">App Services Use Cases &amp; Applications Overview<\/span><\/a><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><span style=\"font-weight: 400\">You can leave a comment below or feel free to reach out to me via <\/span><a href=\"https:\/\/twitter.com\/rajagp\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400\">Twitter<\/span><\/a><span style=\"font-weight: 400\"> or <\/span><span style=\"font-weight: 400\">email.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>We\u2019re pleased to announce the general availability of Capella App Services on Google Cloud Platform (GCP). The cloud expansion comes on the heels of the recent public launch of Capella App Services on AWS. Capella App Services is a fully [&hellip;]<\/p>\n","protected":false},"author":1423,"featured_media":13608,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1816],"tags":[],"ppma_author":[8948],"class_list":["post-13602","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-couchbase-server"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.8 (Yoast SEO v25.8) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Fully Managed Offline-First Data Sync | Cloud Support<\/title>\n<meta name=\"description\" content=\"Couchbase provides an overview of Capella App Services and the salient features, comparing it with corresponding self-managed Couchbase Mobile deployments.\" \/>\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\/capella-app-services-cloud-offline-data-sync\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Capella App Services Expands Cloud Support for Fully Managed Offline-first Data Sync\" \/>\n<meta property=\"og:description\" content=\"Couchbase provides an overview of Capella App Services and the salient features, comparing it with corresponding self-managed Couchbase Mobile deployments.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/capella-app-services-cloud-offline-data-sync\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2022-07-28T17:02:34+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-12-22T22:52:32+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2022\/07\/image_2022-07-26_171015907.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"929\" \/>\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: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=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/capella-app-services-cloud-offline-data-sync\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/capella-app-services-cloud-offline-data-sync\/\"},\"author\":{\"name\":\"Priya Rajagopal, Senior Director, Product Management\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/c2da90e57717ee4970c48a87a131ac2c\"},\"headline\":\"Capella App Services Expands Cloud Support for Fully Managed Offline-first Data Sync\",\"datePublished\":\"2022-07-28T17:02:34+00:00\",\"dateModified\":\"2023-12-22T22:52:32+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/capella-app-services-cloud-offline-data-sync\/\"},\"wordCount\":1595,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/capella-app-services-cloud-offline-data-sync\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/07\/image_2022-07-26_171015907.png\",\"articleSection\":[\"Couchbase Server\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/capella-app-services-cloud-offline-data-sync\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/capella-app-services-cloud-offline-data-sync\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/capella-app-services-cloud-offline-data-sync\/\",\"name\":\"Fully Managed Offline-First Data Sync | Cloud Support\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/capella-app-services-cloud-offline-data-sync\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/capella-app-services-cloud-offline-data-sync\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/07\/image_2022-07-26_171015907.png\",\"datePublished\":\"2022-07-28T17:02:34+00:00\",\"dateModified\":\"2023-12-22T22:52:32+00:00\",\"description\":\"Couchbase provides an overview of Capella App Services and the salient features, comparing it with corresponding self-managed Couchbase Mobile deployments.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/capella-app-services-cloud-offline-data-sync\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/capella-app-services-cloud-offline-data-sync\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/capella-app-services-cloud-offline-data-sync\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/07\/image_2022-07-26_171015907.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/07\/image_2022-07-26_171015907.png\",\"width\":1200,\"height\":929,\"caption\":\"Couchbase Capella App Services on AWS and GCP\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/capella-app-services-cloud-offline-data-sync\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Capella App Services Expands Cloud Support for Fully Managed Offline-first Data Sync\"}]},{\"@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":"Fully Managed Offline-First Data Sync | Cloud Support","description":"Couchbase provides an overview of Capella App Services and the salient features, comparing it with corresponding self-managed Couchbase Mobile deployments.","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\/capella-app-services-cloud-offline-data-sync\/","og_locale":"en_US","og_type":"article","og_title":"Capella App Services Expands Cloud Support for Fully Managed Offline-first Data Sync","og_description":"Couchbase provides an overview of Capella App Services and the salient features, comparing it with corresponding self-managed Couchbase Mobile deployments.","og_url":"https:\/\/www.couchbase.com\/blog\/capella-app-services-cloud-offline-data-sync\/","og_site_name":"The Couchbase Blog","article_published_time":"2022-07-28T17:02:34+00:00","article_modified_time":"2023-12-22T22:52:32+00:00","og_image":[{"width":1200,"height":929,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2022\/07\/image_2022-07-26_171015907.png","type":"image\/png"}],"author":"Priya Rajagopal, Senior Director, Product Management","twitter_card":"summary_large_image","twitter_creator":"@rajagp","twitter_misc":{"Written by":"Priya Rajagopal, Senior Director, Product Management","Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/capella-app-services-cloud-offline-data-sync\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/capella-app-services-cloud-offline-data-sync\/"},"author":{"name":"Priya Rajagopal, Senior Director, Product Management","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/c2da90e57717ee4970c48a87a131ac2c"},"headline":"Capella App Services Expands Cloud Support for Fully Managed Offline-first Data Sync","datePublished":"2022-07-28T17:02:34+00:00","dateModified":"2023-12-22T22:52:32+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/capella-app-services-cloud-offline-data-sync\/"},"wordCount":1595,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/capella-app-services-cloud-offline-data-sync\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/07\/image_2022-07-26_171015907.png","articleSection":["Couchbase Server"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/capella-app-services-cloud-offline-data-sync\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/capella-app-services-cloud-offline-data-sync\/","url":"https:\/\/www.couchbase.com\/blog\/capella-app-services-cloud-offline-data-sync\/","name":"Fully Managed Offline-First Data Sync | Cloud Support","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/capella-app-services-cloud-offline-data-sync\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/capella-app-services-cloud-offline-data-sync\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/07\/image_2022-07-26_171015907.png","datePublished":"2022-07-28T17:02:34+00:00","dateModified":"2023-12-22T22:52:32+00:00","description":"Couchbase provides an overview of Capella App Services and the salient features, comparing it with corresponding self-managed Couchbase Mobile deployments.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/capella-app-services-cloud-offline-data-sync\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/capella-app-services-cloud-offline-data-sync\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.couchbase.com\/blog\/capella-app-services-cloud-offline-data-sync\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/07\/image_2022-07-26_171015907.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/07\/image_2022-07-26_171015907.png","width":1200,"height":929,"caption":"Couchbase Capella App Services on AWS and GCP"},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/capella-app-services-cloud-offline-data-sync\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Capella App Services Expands Cloud Support for Fully Managed Offline-first Data Sync"}]},{"@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\/13602","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=13602"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts\/13602\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/media\/13608"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/media?parent=13602"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/categories?post=13602"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/tags?post=13602"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/ppma_author?post=13602"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}