{"id":2967416,"date":"2026-05-28T08:00:03","date_gmt":"2026-05-28T15:00:03","guid":{"rendered":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=2967416"},"modified":"2026-05-29T11:57:41","modified_gmt":"2026-05-29T18:57:41","slug":"two-way-feature-service-to-feature-service-sync","status":"publish","type":"blog","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-enterprise\/data-management\/two-way-feature-service-to-feature-service-sync","title":{"rendered":"Two-way feature service-to-feature service sync"},"author":156961,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","format":"standard","meta":{"_acf_changed":false,"_searchwp_excluded":""},"categories":[23851],"tags":[781068,771542,781118,781117],"industry":[],"product":[36571],"class_list":["post-2967416","blog","type-blog","status-publish","format-standard","hentry","category-data-management","tag-arcgis-enterprise-12-1","tag-feature-service-sync","tag-replicas","tag-sync-workflows","product-arcgis-enterprise"],"acf":{"short_description":"Introducing two-way feature service-to-feature service sync in ArcGIS Enterprise 12.1.","flexible_content":[{"acf_fc_layout":"content","content":"<p>In ArcGIS Enterprise 11.3, we introduced a workflow for <a href=\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-enterprise\/data-management\/one-way-feature-service-to-feature-service-sync\" target=\"_blank\" rel=\"noopener\">one-way feature service-to-feature service sync<\/a>, allowing users to efficiently synchronize edits between two feature services. <span data-teams=\"true\">This provides a workflow comparable to <a href=\"https:\/\/pro.arcgis.com\/en\/pro-app\/latest\/help\/data\/geodatabases\/overview\/geodatabase-replication-fundamentals.htm\" target=\"_blank\" rel=\"noopener\">geodatabase replication<\/a>, allowing you to keep production and publication geodatabases in sync, but using feature services as the mechanism.<\/span><\/p>\n<p>With the latest release of <a href=\"https:\/\/enterprise.arcgis.com\/en\/get-started\/latest\/windows\/what-s-new-in-arcgis-enterprise.htm\" target=\"_blank\" rel=\"noopener\">ArcGIS Enterprise 12.1<\/a>, we are expanding these capabilities to support two-way synchronization between feature services.<\/p>\n<p>This enhancement enables bidirectional data exchange, allowing edits to flow between two services that are backed by separate data sources\u2014unlocking new collaboration and data management workflows.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":2967421,"id":2967421,"title":"Two-way feature service-to-feature service sync workflow diagram","filename":"diagram.png","filesize":88242,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/diagram.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-enterprise\/data-management\/two-way-feature-service-to-feature-service-sync\/diagram-14","alt":"Two-way feature service-to-feature service sync workflow diagram","author":"156961","description":"Two-way feature service-to-feature service sync workflow diagram","caption":"Two-way feature service-to-feature service sync workflow diagram","name":"diagram-14","status":"inherit","uploaded_to":2967416,"date":"2026-05-21 20:15:56","modified":"2026-05-21 21:40:45","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":844,"height":582,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/diagram-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/diagram.png","medium-width":378,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/diagram.png","medium_large-width":768,"medium_large-height":530,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/diagram.png","large-width":844,"large-height":582,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/diagram.png","1536x1536-width":844,"1536x1536-height":582,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/diagram.png","2048x2048-width":844,"2048x2048-height":582,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/diagram-674x465.png","card_image-width":674,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/diagram.png","wide_image-width":844,"wide_image-height":582}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<h2><strong>Data preparation and requirements<\/strong><\/h2>\n<p>Before you create replicas and synchronize edits, confirm your services meet the supported requirements below.<\/p>\n<p>This workflow supports the following data registration types and feature service types, where any can be either the source or the target feature service:<\/p>\n<ul>\n<li>Feature services that reference branch-versioned datasets or feature services that reference nonversioned datasets with archiving enabled<\/li>\n<li>Hosted feature services to ArcGIS Enterprise<\/li>\n<li>Mixed workflows between referenced and hosted feature services<\/li>\n<\/ul>\n<p><strong>Referenced feature service requirements<\/strong><\/p>\n<p>The following requirements apply when using referenced feature services backed by enterprise geodatabases:<\/p>\n<table>\n<thead>\n<tr>\n<td><strong>Requirement<\/strong><\/td>\n<td><strong>Details<\/strong><\/td>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Data model<\/td>\n<td>Same copy of the data using the simple features model<\/td>\n<\/tr>\n<tr>\n<td>Global IDs<\/td>\n<td>Matching Global IDs between source and target<\/td>\n<\/tr>\n<tr>\n<td>Replica tracking<\/td>\n<td>Must be enabled for each dataset before publishing<\/td>\n<\/tr>\n<tr>\n<td>Registration type<\/td>\n<td>Branch versioned OR non-versioned with archiving enabled<\/td>\n<\/tr>\n<tr>\n<td>Sync capability<\/td>\n<td>Sync capability enabled on the feature service<\/td>\n<\/tr>\n<tr>\n<td>Layer configuration<\/td>\n<td>Matching layer IDs<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><strong>Note:<\/strong> Traditional versioning is not a supported registration type with this workflow.<\/p>\n<p><strong>\u00a0<\/strong><\/p>\n<p><strong>Hosted feature service requirements<\/strong><\/p>\n<p>The following requirements apply when using hosted feature services in ArcGIS Enterprise:<\/p>\n<table>\n<thead>\n<tr>\n<td><strong>Requirement<\/strong><\/td>\n<td><strong>Details<\/strong><\/td>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Data model<\/td>\n<td>Same copy of the data using the simple features model<\/td>\n<\/tr>\n<tr>\n<td>Global IDs<\/td>\n<td>Matching Global IDs between source and target<\/td>\n<\/tr>\n<tr>\n<td>Sync capability<\/td>\n<td>Sync capability enabled on the feature service<\/td>\n<\/tr>\n<tr>\n<td>Layer configuration<\/td>\n<td>Matching layer IDs<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><strong>Insider tip:<\/strong> Support for hosted feature services in ArcGIS Online is planned for a future software release.<\/p>\n<p>Two-way sync relies on the replication framework to synchronize changes across two services. That means the following are required:<\/p>\n<ul>\n<li>Global IDs must be present and aligned such that the same real-world feature can be recognized across both sides.<\/li>\n<li>Layer IDs must match between services (for example, layer 0 in the source corresponds to layer 0 in the target service).<\/li>\n<\/ul>\n<p>Once the feature services have been published with all the data requirements, the feature service will have the &#8220;<em>s<strong>upportsBiDirectionalSyncForServer<\/strong><\/em>&#8221; property set to <em><strong>True<\/strong><\/em>. This confirms the service supports the two-way feature service-to-feature service sync workflow.<\/p>\n<p>If either of those don\u2019t line up, you\u2019ll typically see replica creation failures, or sync responses that don\u2019t apply cleanly.<\/p>\n"},{"acf_fc_layout":"content","content":"<h2><strong>Workflow overview (Python example)<\/strong><\/h2>\n<p>Next, let\u2019s go over the workflow steps. In this example, we\u2019ll follow a Python script example to create and synchronize replicas between two already published feature services that represent pole inspection data.<\/p>\n<ul>\n<li>The\u00a0source\u00a0feature service is\u00a0referenced\u00a0(published by referencing a registered data store).<\/li>\n<li>The\u00a0target\u00a0feature service is\u00a0hosted\u00a0(published with the option to copy all data).<\/li>\n<\/ul>\n<p><span data-teams=\"true\">The complete workflow is shown in the video below.<\/span><\/p>\n"},{"acf_fc_layout":"kaltura","video_id":"1_4e3v6mya","time":false,"start":0},{"acf_fc_layout":"content","content":"<p>If you want to follow along using your own data, access the sample script <a href=\"https:\/\/github.com\/EsriDevEvents\/syncing-with-feature-services-2026\/blob\/main\/SyncFStoFS_2way_sample.py\" target=\"_blank\" rel=\"noopener\">here<\/a>.<\/p>\n"},{"acf_fc_layout":"content","content":"<p>Before we dive into the details, here\u2019s the synchronization pattern used in the script:<\/p>\n<ul>\n<li><b>Download<\/b>\u00a0(from the source) \u2192 prepares a delta file with edits based on what the target has already received<\/li>\n<li><b>Bidirectional<\/b>\u00a0(on the target) \u2192 applies incoming edits and packages outgoing edits<\/li>\n<li><b>Upload<\/b>\u00a0(to the source) \u2192 applies the target\u2019s edits back to the source<\/li>\n<\/ul>\n<h3><strong>Step 1 \u2014 Create the replica pair (one on each service)<\/strong><\/h3>\n<p>The script starts by calling the ArcGIS REST API to connect to the existing, already published feature services that act as the source and target services in this workflow. So, the first things you need are as follows:<\/p>\n<ul>\n<li>The REST URLs to both FeatureServer endpoints<\/li>\n<li>A valid token<\/li>\n<\/ul>\n<p>In the sample script:<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":2967452,"id":2967452,"title":"Access the feature services","filename":"access-fs.png","filesize":20680,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/access-fs.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-enterprise\/data-management\/two-way-feature-service-to-feature-service-sync\/access-fs","alt":"Access the feature services","author":"156961","description":"Access the feature services","caption":"Access the feature services","name":"access-fs","status":"inherit","uploaded_to":2967416,"date":"2026-05-21 21:16:24","modified":"2026-05-21 21:41:39","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":903,"height":266,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/access-fs-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/access-fs.png","medium-width":464,"medium-height":137,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/access-fs.png","medium_large-width":768,"medium_large-height":226,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/access-fs.png","large-width":903,"large-height":266,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/access-fs.png","1536x1536-width":903,"1536x1536-height":266,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/access-fs.png","2048x2048-width":903,"2048x2048-height":266,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/access-fs-826x243.png","card_image-width":826,"card_image-height":243,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/access-fs.png","wide_image-width":903,"wide_image-height":266}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p>Then, it creates the replica pair as follows:<\/p>\n<ol>\n<li>Creates a replica on the first service.<\/li>\n<li>Creates a corresponding replica on the second service, referencing the first replica id.<\/li>\n<\/ol>\n<p><strong>Create the replica on the source (referenced) service<\/strong><\/p>\n<p>The script calls the <a href=\"https:\/\/developers.arcgis.com\/rest\/services-reference\/enterprise\/create-replica\/\" target=\"_blank\" rel=\"noopener\">createReplica<\/a>\u00a0function on the referenced service with the following parameters:<\/p>\n<ul>\n<li style=\"list-style-type: none\">\n<ul>\n<li><em>targetType <\/em>= server\u00a0(server-to-server style)<\/li>\n<li><em>syncDirection <\/em>= bidirectional<\/li>\n<li><em>syncModel <\/em>= perLayer (in this example the data is non-versioned with archiving enabled)<\/li>\n<li>a geometry envelope for the <em>replica extent<\/em><\/li>\n<li>The <em>serverGen <\/em>parameter defines the starting point for synchronizing edits. It is a Unix epoch timestamp in milliseconds that marks the replica creation time and tells the server from which point to send changes. Before running the script, generate a Unix epoch timestamp (in milliseconds) representing the moment you want synchronization to begin, such as by using an online epoch timestamp converter. It is important to choose a time when the source and target services contained identical data, as this establishes the baseline for change tracking.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Key parameters in the sample:<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":2967454,"id":2967454,"title":"Create replica on the source feature service","filename":"createreplicas.png","filesize":36420,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/createreplicas.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-enterprise\/data-management\/two-way-feature-service-to-feature-service-sync\/createreplicas","alt":"Create replica on the source feature service","author":"156961","description":"Create replica on the source feature service","caption":"Create replica on the source feature service","name":"createreplicas","status":"inherit","uploaded_to":2967416,"date":"2026-05-21 21:18:18","modified":"2026-05-21 21:41:56","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":906,"height":523,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/createreplicas-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/createreplicas.png","medium-width":452,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/createreplicas.png","medium_large-width":768,"medium_large-height":443,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/createreplicas.png","large-width":906,"large-height":523,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/createreplicas.png","1536x1536-width":906,"1536x1536-height":523,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/createreplicas.png","2048x2048-width":906,"2048x2048-height":523,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/createreplicas-806x465.png","card_image-width":806,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/createreplicas.png","wide_image-width":906,"wide_image-height":523}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p><strong>Note<\/strong>: If you are familiar with the one-way feature service sync workflow, you will notice the key difference is that the <em>syncDirection<\/em> parameter is now set to bidirectional.<\/p>\n<p>After creation, the response contains a URL you can query to retrieve the newly created\u00a0<em>replicaID<\/em>.<\/p>\n<p><strong>Create the replica on the target (hosted) service<\/strong><\/p>\n<p>Once you have the\u00a0<em>replicaID<\/em>\u00a0from the source, you create a replica on the hosted service using\u00a0<em>refReplicaID <\/em>allowing both replicas to align and participate in the same replica pair.<\/p>\n<p>In the sample:<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":2967455,"id":2967455,"title":"Create replica on the target feature service","filename":"createreplicahosted.png","filesize":37417,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/createreplicahosted.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-enterprise\/data-management\/two-way-feature-service-to-feature-service-sync\/createreplicahosted","alt":"Create replica on the target feature service","author":"156961","description":"Create replica on the target feature service","caption":"Create replica on the target feature service","name":"createreplicahosted","status":"inherit","uploaded_to":2967416,"date":"2026-05-21 21:20:43","modified":"2026-05-21 21:42:08","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":904,"height":523,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/createreplicahosted-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/createreplicahosted.png","medium-width":451,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/createreplicahosted.png","medium_large-width":768,"medium_large-height":444,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/createreplicahosted.png","large-width":904,"large-height":523,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/createreplicahosted.png","1536x1536-width":904,"1536x1536-height":523,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/createreplicahosted.png","2048x2048-width":904,"2048x2048-height":523,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/createreplicahosted-804x465.png","card_image-width":804,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/createreplicahosted.png","wide_image-width":904,"wide_image-height":523}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p>At this point, you have a paired replica setup: source \u2194 target.<\/p>\n<h3><strong>Step 2 \u2014 Make edits to the web layers<\/strong><\/h3>\n<p>In a real workflow, once replicas exist, you can make edits to both the source and target feature service using any of the following:<\/p>\n<ul>\n<li>web apps<\/li>\n<li>ArcGIS Pro<\/li>\n<li>through the REST API applyEdits endpoint<\/li>\n<li>through field apps (depending on your service configuration)<\/li>\n<\/ul>\n<p>In this example, attribute edits are made to both the source and the target feature services by changing the pole heights.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":2967448,"id":2967448,"title":"Making web edits to the pole inspection data","filename":"making_edits.png","filesize":1108232,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/making_edits.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-enterprise\/data-management\/two-way-feature-service-to-feature-service-sync\/making_edits","alt":"Making web edits to the pole inspection data","author":"156961","description":"Making web edits to the pole inspection data","caption":"Making web edits to the pole inspection data","name":"making_edits","status":"inherit","uploaded_to":2967416,"date":"2026-05-21 21:06:21","modified":"2026-05-22 04:10:27","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":1829,"height":760,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/making_edits-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/making_edits.png","medium-width":464,"medium-height":193,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/making_edits.png","medium_large-width":768,"medium_large-height":319,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/making_edits.png","large-width":1829,"large-height":760,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/making_edits-1536x638.png","1536x1536-width":1536,"1536x1536-height":638,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/making_edits.png","2048x2048-width":1829,"2048x2048-height":760,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/making_edits-826x343.png","card_image-width":826,"card_image-height":343,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/making_edits.png","wide_image-width":1829,"wide_image-height":760}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<h3><strong>Step 3 \u2014 Synchronize the changes\u00a0<\/strong><\/h3>\n<h4><strong>A. Sync download from the source (pull edits made on the source)<\/strong><\/h4>\n<p>To start the two-way synchronization, the script performs a download on the source feature service (in this case, the referenced service). This download is performed based on the last edits received by the target feature service, so the source only packages what the target still needs.<\/p>\n<p><strong>Read the target replica state <\/strong><\/p>\n<p>The script queries the target\u2019s replica metadata to get the \u201clast received edits\u201d generation number.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":2967456,"id":2967456,"title":"Read the target replica state by checking for the last edits received.","filename":"readthetargetreplicastate.png","filesize":18318,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/readthetargetreplicastate.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-enterprise\/data-management\/two-way-feature-service-to-feature-service-sync\/readthetargetreplicastate","alt":"Read the target replica state by checking for the last edits received.","author":"156961","description":"Read the target replica state by checking for the last edits received.","caption":"Read the target replica state by checking for the last edits received.","name":"readthetargetreplicastate","status":"inherit","uploaded_to":2967416,"date":"2026-05-21 21:23:46","modified":"2026-05-21 21:43:51","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":899,"height":187,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/readthetargetreplicastate-213x187.png","thumbnail-width":213,"thumbnail-height":187,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/readthetargetreplicastate.png","medium-width":464,"medium-height":97,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/readthetargetreplicastate.png","medium_large-width":768,"medium_large-height":160,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/readthetargetreplicastate.png","large-width":899,"large-height":187,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/readthetargetreplicastate.png","1536x1536-width":899,"1536x1536-height":187,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/readthetargetreplicastate.png","2048x2048-width":899,"2048x2048-height":187,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/readthetargetreplicastate-826x172.png","card_image-width":826,"card_image-height":172,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/readthetargetreplicastate.png","wide_image-width":899,"wide_image-height":187}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p><strong>Call the synchronizeReplica function<\/strong> <strong>with\u00a0syncDirection=download<\/strong><\/p>\n<p>Then it calls\u00a0<em>synchronizeReplica\u00a0<\/em>on the source service with\u00a0<em>syncDirection<\/em>=download, passing\u00a0<em>serverGen\u00a0<\/em>based on the generation retrieved above.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":2967460,"id":2967460,"title":"SynchronizeReplica function with syncDirection=download","filename":"syncreplica_download.png","filesize":28681,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/syncreplica_download.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-enterprise\/data-management\/two-way-feature-service-to-feature-service-sync\/syncreplica_download","alt":"SynchronizeReplica function with syncDirection=download","author":"156961","description":"SynchronizeReplica function with syncDirection=download","caption":"SynchronizeReplica function with syncDirection=download","name":"syncreplica_download","status":"inherit","uploaded_to":2967416,"date":"2026-05-21 21:26:14","modified":"2026-05-21 21:43:10","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":894,"height":365,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/syncreplica_download-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/syncreplica_download.png","medium-width":464,"medium-height":189,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/syncreplica_download.png","medium_large-width":768,"medium_large-height":314,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/syncreplica_download.png","large-width":894,"large-height":365,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/syncreplica_download.png","1536x1536-width":894,"1536x1536-height":365,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/syncreplica_download.png","2048x2048-width":894,"2048x2048-height":365,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/syncreplica_download-826x337.png","card_image-width":826,"card_image-height":337,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/syncreplica_download.png","wide_image-width":894,"wide_image-height":365}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p>If there are edits to download, the response provides a\u00a0delta file URL\u00a0(in SQLite format) that can be passed along to the target service in the next stage.<\/p>\n<h4><strong>B. Sync\u00a0bidirectional\u00a0on the target (apply incoming edits + package outgoing edits)<\/strong><\/h4>\n<p>This is the \u201cpivot\u201d step in the sample: the target service receives the edits, and it determines whether it has edits to send back.<\/p>\n<p><strong>Upload the delta file to the target feature service<\/strong><\/p>\n<p>If the referenced-service download produced a delta file, the script uploads it to the hosted service using the service\u2019s\u00a0\/uploads\/upload\u00a0endpoint:<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":2967463,"id":2967463,"title":"Upload the delta file to the target feature service","filename":"uploaddeltafile.png","filesize":11598,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/uploaddeltafile.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-enterprise\/data-management\/two-way-feature-service-to-feature-service-sync\/uploaddeltafile","alt":"Upload the delta file to the target feature service","author":"156961","description":"Upload the delta file to the target feature service","caption":"Upload the delta file to the target feature service","name":"uploaddeltafile","status":"inherit","uploaded_to":2967416,"date":"2026-05-21 21:27:51","modified":"2026-05-21 21:43:22","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":914,"height":196,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/uploaddeltafile-213x196.png","thumbnail-width":213,"thumbnail-height":196,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/uploaddeltafile.png","medium-width":464,"medium-height":100,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/uploaddeltafile.png","medium_large-width":768,"medium_large-height":165,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/uploaddeltafile.png","large-width":914,"large-height":196,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/uploaddeltafile.png","1536x1536-width":914,"1536x1536-height":196,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/uploaddeltafile.png","2048x2048-width":914,"2048x2048-height":196,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/uploaddeltafile-826x177.png","card_image-width":826,"card_image-height":177,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/uploaddeltafile.png","wide_image-width":914,"wide_image-height":196}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p><strong>Read the source replica state <\/strong><\/p>\n<p>Before calling bidirectional sync on the hosted service, the script checks the source replica generations (so the target side knows what the source has already received):<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":2967464,"id":2967464,"title":"Read the source replica state by checking for the last edits received.","filename":"readsourcereplicastate.png","filesize":18176,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/readsourcereplicastate.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-enterprise\/data-management\/two-way-feature-service-to-feature-service-sync\/readsourcereplicastate","alt":"Read the source replica state by checking for the last edits received.","author":"156961","description":"Read the source replica state by checking for the last edits received.","caption":"Read the source replica state by checking for the last edits received.","name":"readsourcereplicastate","status":"inherit","uploaded_to":2967416,"date":"2026-05-21 21:28:41","modified":"2026-05-21 21:44:07","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":912,"height":185,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/readsourcereplicastate-213x185.png","thumbnail-width":213,"thumbnail-height":185,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/readsourcereplicastate.png","medium-width":464,"medium-height":94,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/readsourcereplicastate.png","medium_large-width":768,"medium_large-height":156,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/readsourcereplicastate.png","large-width":912,"large-height":185,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/readsourcereplicastate.png","1536x1536-width":912,"1536x1536-height":185,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/readsourcereplicastate.png","2048x2048-width":912,"2048x2048-height":185,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/readsourcereplicastate-826x168.png","card_image-width":826,"card_image-height":168,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/readsourcereplicastate.png","wide_image-width":912,"wide_image-height":185}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p><strong>Call synchronizeReplica with syncDirection=bidirectional<\/strong><\/p>\n<p>Now the target service synchronizes bidirectionally.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":2967465,"id":2967465,"title":"SynchronizeReplica with syncDirection=bidirectional","filename":"sync_bidirectional.png","filesize":39884,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/sync_bidirectional.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-enterprise\/data-management\/two-way-feature-service-to-feature-service-sync\/sync_bidirectional","alt":"SynchronizeReplica with syncDirection=bidirectional","author":"156961","description":"SynchronizeReplica with syncDirection=bidirectional","caption":"SynchronizeReplica with syncDirection=bidirectional","name":"sync_bidirectional","status":"inherit","uploaded_to":2967416,"date":"2026-05-21 21:29:52","modified":"2026-05-21 21:44:20","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":913,"height":523,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/sync_bidirectional-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/sync_bidirectional.png","medium-width":456,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/sync_bidirectional.png","medium_large-width":768,"medium_large-height":440,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/sync_bidirectional.png","large-width":913,"large-height":523,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/sync_bidirectional.png","1536x1536-width":913,"1536x1536-height":523,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/sync_bidirectional.png","2048x2048-width":913,"2048x2048-height":523,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/sync_bidirectional-812x465.png","card_image-width":812,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/sync_bidirectional.png","wide_image-width":913,"wide_image-height":523}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p>If the target service has\u00a0no edits to return, it will respond with a \u201cno edits\u201d response type and the workflow ends.<\/p>\n<h4><strong>C. Sync upload back to the source (push edits from the target back to the source feature service)<\/strong><\/h4>\n<p>If the bidirectional step produced edits to send back, the target service returns a delta file (in the sample as\u00a0resultUrl).<\/p>\n<p><strong>Upload the delta file to the source feature service<\/strong><\/p>\n<p>Upload the delta file that contains the edits from the target to the source feature service.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":2967468,"id":2967468,"title":"Upload the delta file to the source feature service","filename":"uploaddeltafiletosource.png","filesize":12088,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/uploaddeltafiletosource.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-enterprise\/data-management\/two-way-feature-service-to-feature-service-sync\/uploaddeltafiletosource","alt":"Upload the delta file to the source feature service","author":"156961","description":"Upload the delta file to the source feature service","caption":"Upload the delta file to the source feature service","name":"uploaddeltafiletosource","status":"inherit","uploaded_to":2967416,"date":"2026-05-21 21:31:32","modified":"2026-05-21 21:44:30","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":905,"height":199,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/uploaddeltafiletosource-213x199.png","thumbnail-width":213,"thumbnail-height":199,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/uploaddeltafiletosource.png","medium-width":464,"medium-height":102,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/uploaddeltafiletosource.png","medium_large-width":768,"medium_large-height":169,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/uploaddeltafiletosource.png","large-width":905,"large-height":199,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/uploaddeltafiletosource.png","1536x1536-width":905,"1536x1536-height":199,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/uploaddeltafiletosource.png","2048x2048-width":905,"2048x2048-height":199,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/uploaddeltafiletosource-826x182.png","card_image-width":826,"card_image-height":182,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/uploaddeltafiletosource.png","wide_image-width":905,"wide_image-height":199}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p><strong>Call\u00a0synchronizeReplica\u00a0on the referenced service with\u00a0syncDirection=upload<\/strong><\/p>\n"},{"acf_fc_layout":"image","image":{"ID":2967469,"id":2967469,"title":"SynchronizeReplica on the referenced service with syncDirection=upload","filename":"sync_upload.png","filesize":33327,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/sync_upload.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-enterprise\/data-management\/two-way-feature-service-to-feature-service-sync\/sync_upload","alt":"SynchronizeReplica on the referenced service with syncDirection=upload","author":"156961","description":"SynchronizeReplica on the referenced service with syncDirection=upload","caption":"SynchronizeReplica on the referenced service with syncDirection=upload","name":"sync_upload","status":"inherit","uploaded_to":2967416,"date":"2026-05-21 21:32:21","modified":"2026-05-21 21:44:46","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":914,"height":428,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/sync_upload-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/sync_upload.png","medium-width":464,"medium-height":217,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/sync_upload.png","medium_large-width":768,"medium_large-height":360,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/sync_upload.png","large-width":914,"large-height":428,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/sync_upload.png","1536x1536-width":914,"1536x1536-height":428,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/sync_upload.png","2048x2048-width":914,"2048x2048-height":428,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/sync_upload-826x387.png","card_image-width":826,"card_image-height":387,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/05\/sync_upload.png","wide_image-width":914,"wide_image-height":428}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p>At this point, edits have been exchanged in both directions, and both services are in sync.<\/p>\n<p>Two-way feature service-to-feature service sync in ArcGIS Enterprise 12.1 expands the one-way workflow introduced in an earlier release by enabling bidirectional edit exchange between two services backed by separate data sources. By creating paired replicas and using\u00a0synchronizeReplica\u00a0with the appropriate direction (download \u2192 bidirectional \u2192 upload), you can support collaborative editing patterns that previously required more complex replication or custom workflows.<\/p>\n<p>The script can be run any time you want to sync edits between the two services. To make the most of this workflow, you can run the sample script on a schedule (for example, with Task Scheduler) to keep both services synchronized automatically.<\/p>\n<p>It is also important to remember that the sample script is intended to serve as a starting point. This workflow allows for additional flexibility that can be incorporated into more advanced ones. For example, you can do the following:<\/p>\n<ul>\n<li>Use async=true for longer-running synchronization jobs<\/li>\n<li>Apply filters such as where clauses during replica creation to limit the data being synchronized<\/li>\n<li>Customize synchronization intervals<\/li>\n<li>Extend the workflow into larger automation pipelines and integrations<\/li>\n<\/ul>\n<p>For more content on ways to distribute your data in ArcGIS, check out the <a href=\"https:\/\/geodatabase-resources-gdbteam.hub.arcgis.com\/\" target=\"_blank\" rel=\"noopener\">Geodatabase Resources Hub<\/a>.<\/p>\n"}],"related_articles":[{"ID":2352182,"post_author":"156961","post_date":"2024-06-11 15:00:36","post_date_gmt":"2024-06-11 22:00:36","post_content":"","post_title":"One-way feature service-to-feature service sync","post_excerpt":"","post_status":"publish","comment_status":"closed","ping_status":"closed","post_password":"","post_name":"one-way-feature-service-to-feature-service-sync","to_ping":"","pinged":"","post_modified":"2026-04-08 14:44:29","post_modified_gmt":"2026-04-08 21:44:29","post_content_filtered":"","post_parent":0,"guid":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=2352182","menu_order":0,"post_type":"blog","post_mime_type":"","comment_count":"0","filter":"raw"}],"authors":[{"ID":156451,"user_firstname":"Gary","user_lastname":"MacDougall","nickname":"GaryM","user_nicename":"garym","display_name":"Gary MacDougall","user_email":"gmacdougall@esri.com","user_url":"","user_registered":"2021-01-11 19:15:25","user_description":"","user_avatar":"<img alt='' src='https:\/\/secure.gravatar.com\/avatar\/549589ce40422daac326e0cd243ceffae3369b9f4b88389779325b83b2232db5?s=96&#038;d=blank&#038;r=g' srcset='https:\/\/secure.gravatar.com\/avatar\/549589ce40422daac326e0cd243ceffae3369b9f4b88389779325b83b2232db5?s=192&#038;d=blank&#038;r=g 2x' class='avatar avatar-96 photo' height='96' width='96' loading='lazy' decoding='async'\/>"},{"ID":156961,"user_firstname":"Diana","user_lastname":"Muresan","nickname":"Diana Muresan","user_nicename":"dmuresan","display_name":"Diana Muresan","user_email":"dmuresan@esri.com","user_url":"","user_registered":"2021-01-12 23:13:12","user_description":"Product Engineer on the Geodatabase team, passionate about making a difference in people's lives using GIS. Hiker and a true \u00c9clair and Cr\u00eape lover in her free time.","user_avatar":"<img data-del=\"avatar\" src='https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/02\/Photo_crop-213x200.jpg' class='avatar pp-user-avatar avatar-96 photo ' height='96' width='96'\/>"}],"show_article_image":false,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/05\/small-card3.jpg","wide_image":false},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.9 (Yoast SEO v25.9) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Two-way feature service-to-feature service sync<\/title>\n<meta name=\"description\" content=\"Introducing two-way feature service-to-feature service sync in ArcGIS Enterprise 12.1 release.\" \/>\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.esri.com\/arcgis-blog\/products\/arcgis-enterprise\/data-management\/two-way-feature-service-to-feature-service-sync\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Two-way feature service-to-feature service sync\" \/>\n<meta property=\"og:description\" content=\"Introducing two-way feature service-to-feature service sync in ArcGIS Enterprise 12.1 release.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-enterprise\/data-management\/two-way-feature-service-to-feature-service-sync\" \/>\n<meta property=\"og:site_name\" content=\"ArcGIS Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/esrigis\/\" \/>\n<meta property=\"article:modified_time\" content=\"2026-05-29T18:57:41+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@ESRI\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"10 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":[\"Article\",\"BlogPosting\"],\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-enterprise\/data-management\/two-way-feature-service-to-feature-service-sync#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-enterprise\/data-management\/two-way-feature-service-to-feature-service-sync\"},\"author\":{\"name\":\"Diana Muresan\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/4fd5d4cc17e6b2cf4dede740d9a70ca8\"},\"headline\":\"Two-way feature service-to-feature service sync\",\"datePublished\":\"2026-05-28T15:00:03+00:00\",\"dateModified\":\"2026-05-29T18:57:41+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-enterprise\/data-management\/two-way-feature-service-to-feature-service-sync\"},\"wordCount\":5,\"publisher\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\"},\"keywords\":[\"ArcGIS Enterprise 12.1\",\"feature service sync\",\"replicas\",\"sync workflows\"],\"articleSection\":[\"Data Management\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-enterprise\/data-management\/two-way-feature-service-to-feature-service-sync\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-enterprise\/data-management\/two-way-feature-service-to-feature-service-sync\",\"name\":\"Two-way feature service-to-feature service sync\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#website\"},\"datePublished\":\"2026-05-28T15:00:03+00:00\",\"dateModified\":\"2026-05-29T18:57:41+00:00\",\"description\":\"Introducing two-way feature service-to-feature service sync in ArcGIS Enterprise 12.1 release.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-enterprise\/data-management\/two-way-feature-service-to-feature-service-sync#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-enterprise\/data-management\/two-way-feature-service-to-feature-service-sync\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-enterprise\/data-management\/two-way-feature-service-to-feature-service-sync#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.esri.com\/arcgis-blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Two-way feature service-to-feature service sync\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#website\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/\",\"name\":\"ArcGIS Blog\",\"description\":\"Get insider info from Esri product teams\",\"publisher\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.esri.com\/arcgis-blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\",\"name\":\"Esri\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png\",\"contentUrl\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png\",\"width\":400,\"height\":400,\"caption\":\"Esri\"},\"image\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/esrigis\/\",\"https:\/\/x.com\/ESRI\",\"https:\/\/www.linkedin.com\/company\/5311\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/4fd5d4cc17e6b2cf4dede740d9a70ca8\",\"name\":\"Diana Muresan\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/02\/Photo_crop-213x200.jpg\",\"contentUrl\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/02\/Photo_crop-213x200.jpg\",\"caption\":\"Diana Muresan\"},\"description\":\"Product Engineer on the Geodatabase team, passionate about making a difference in people's lives using GIS. Hiker and a true \u00c9clair and Cr\u00eape lover in her free time.\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/author\/dmuresan\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Two-way feature service-to-feature service sync","description":"Introducing two-way feature service-to-feature service sync in ArcGIS Enterprise 12.1 release.","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.esri.com\/arcgis-blog\/products\/arcgis-enterprise\/data-management\/two-way-feature-service-to-feature-service-sync","og_locale":"en_US","og_type":"article","og_title":"Two-way feature service-to-feature service sync","og_description":"Introducing two-way feature service-to-feature service sync in ArcGIS Enterprise 12.1 release.","og_url":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-enterprise\/data-management\/two-way-feature-service-to-feature-service-sync","og_site_name":"ArcGIS Blog","article_publisher":"https:\/\/www.facebook.com\/esrigis\/","article_modified_time":"2026-05-29T18:57:41+00:00","twitter_card":"summary_large_image","twitter_site":"@ESRI","twitter_misc":{"Est. reading time":"10 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":["Article","BlogPosting"],"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-enterprise\/data-management\/two-way-feature-service-to-feature-service-sync#article","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-enterprise\/data-management\/two-way-feature-service-to-feature-service-sync"},"author":{"name":"Diana Muresan","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/4fd5d4cc17e6b2cf4dede740d9a70ca8"},"headline":"Two-way feature service-to-feature service sync","datePublished":"2026-05-28T15:00:03+00:00","dateModified":"2026-05-29T18:57:41+00:00","mainEntityOfPage":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-enterprise\/data-management\/two-way-feature-service-to-feature-service-sync"},"wordCount":5,"publisher":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization"},"keywords":["ArcGIS Enterprise 12.1","feature service sync","replicas","sync workflows"],"articleSection":["Data Management"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-enterprise\/data-management\/two-way-feature-service-to-feature-service-sync","url":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-enterprise\/data-management\/two-way-feature-service-to-feature-service-sync","name":"Two-way feature service-to-feature service sync","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#website"},"datePublished":"2026-05-28T15:00:03+00:00","dateModified":"2026-05-29T18:57:41+00:00","description":"Introducing two-way feature service-to-feature service sync in ArcGIS Enterprise 12.1 release.","breadcrumb":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-enterprise\/data-management\/two-way-feature-service-to-feature-service-sync#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-enterprise\/data-management\/two-way-feature-service-to-feature-service-sync"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-enterprise\/data-management\/two-way-feature-service-to-feature-service-sync#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.esri.com\/arcgis-blog\/"},{"@type":"ListItem","position":2,"name":"Two-way feature service-to-feature service sync"}]},{"@type":"WebSite","@id":"https:\/\/www.esri.com\/arcgis-blog\/#website","url":"https:\/\/www.esri.com\/arcgis-blog\/","name":"ArcGIS Blog","description":"Get insider info from Esri product teams","publisher":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.esri.com\/arcgis-blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization","name":"Esri","url":"https:\/\/www.esri.com\/arcgis-blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png","contentUrl":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png","width":400,"height":400,"caption":"Esri"},"image":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/esrigis\/","https:\/\/x.com\/ESRI","https:\/\/www.linkedin.com\/company\/5311\/"]},{"@type":"Person","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/4fd5d4cc17e6b2cf4dede740d9a70ca8","name":"Diana Muresan","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/image\/","url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/02\/Photo_crop-213x200.jpg","contentUrl":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/02\/Photo_crop-213x200.jpg","caption":"Diana Muresan"},"description":"Product Engineer on the Geodatabase team, passionate about making a difference in people's lives using GIS. Hiker and a true \u00c9clair and Cr\u00eape lover in her free time.","url":"https:\/\/www.esri.com\/arcgis-blog\/author\/dmuresan"}]}},"text_date":"May 28, 2026","author_name":"Multiple Authors","author_page":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-enterprise\/data-management\/two-way-feature-service-to-feature-service-sync","custom_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/08\/Newsroom-Keyart-Wide-1920-x-1080.jpg","primary_product":"ArcGIS Enterprise","tag_data":[{"term_id":781068,"name":"ArcGIS Enterprise 12.1","slug":"arcgis-enterprise-12-1","term_group":0,"term_taxonomy_id":781068,"taxonomy":"post_tag","description":"","parent":0,"count":6,"filter":"raw"},{"term_id":771542,"name":"feature service sync","slug":"feature-service-sync","term_group":0,"term_taxonomy_id":771542,"taxonomy":"post_tag","description":"","parent":0,"count":2,"filter":"raw"},{"term_id":781118,"name":"replicas","slug":"replicas","term_group":0,"term_taxonomy_id":781118,"taxonomy":"post_tag","description":"","parent":0,"count":1,"filter":"raw"},{"term_id":781117,"name":"sync workflows","slug":"sync-workflows","term_group":0,"term_taxonomy_id":781117,"taxonomy":"post_tag","description":"","parent":0,"count":1,"filter":"raw"}],"category_data":[{"term_id":23851,"name":"Data Management","slug":"data-management","term_group":0,"term_taxonomy_id":23851,"taxonomy":"category","description":"","parent":0,"count":950,"filter":"raw"}],"product_data":[{"term_id":36571,"name":"ArcGIS Enterprise","slug":"arcgis-enterprise","term_group":0,"term_taxonomy_id":36571,"taxonomy":"product","description":"","parent":0,"count":1000,"filter":"raw"}],"primary_product_link":"https:\/\/www.esri.com\/arcgis-blog\/?s=#&products=arcgis-enterprise","_links":{"self":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog\/2967416","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog"}],"about":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/types\/blog"}],"author":[{"embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/users\/156961"}],"replies":[{"embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/comments?post=2967416"}],"version-history":[{"count":0,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog\/2967416\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/media?parent=2967416"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/categories?post=2967416"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/tags?post=2967416"},{"taxonomy":"industry","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/industry?post=2967416"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/product?post=2967416"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}