Hi All,
Could someone please help me understand the difference between data Sync and immediate data sync for record type.
I was referring "https://docs.appian.com/suite/help/20.4/Record_Type_Object.html#data-sync
Under "Data sync" the below criteria is given:
You should only enable sync for your record type if:
Where under the topic "Updating synced record types" it talks about immediate update?
Thanks
Faisal
Discussion posts and replies are publicly visible
Hi Faisal,you might think about the data sync like a cache. The size limit of the cache is 100,000 rows. Appian loads data from the original source into the cache to speed up the access time for record retrievals. This sync happens once a day. So your users should be good with this fact and not expecting 'real time' data.The immediate sync happens when Appian is updating the original data source. This triggers that the cache gets updated too. I hope this make sense.
Hi Faisal,
Synced records should be ideally used to cache reference data, so data that is not updated very often. Otherwise this would require a lot of sync operations and this would defeat the purpose of having the data cached. This is what the...
'You should only enable sync for your record type if:
refers to.
So the most common scenario is to have the sync operation for a synced record happening either during the defined scheduled for the sync (once a day) or when performing a manual sync.
However in some cases you might need to update that reference data using your process models. As per the point above you would for instance call a Write to Data Store Smart Service to update a row of your synced record but the record would be out of sync. The immediate update is the capability that Appian has to update the cache in these occasions, so that you won't need to wait for the daily sync or run a manual one.
Hope this helps!
Yeah this is a good explanation. Just to add to this, I think the key phrase in the documentation is that "Your source data changes infrequently outside of Appian..." Let's contrast different ways that the sync could work with a few examples:
Both of these examples are good use cases for using the sync but they just work differently; Example 1 syncs once a day, but the data changes infrequently, and Example 2 will always have the current data synced.
Thank you very much Peter and Marco and juergeng. You have nicely explained this. I have no doubt now.
Hi Peter,
In a scenario which is configured as explained in Example 1, I noticed that in case the daily sync fails for some reason (for example: a connection timeout when calling the webservice) the record data is removed from Appian causing errors in the rules and interfaces that use this record type. I would expect Appian sync to fail but retain the last synced data instead of cleaning it up and causing the record type to be inaccessible. One of the factors to consider is that since the source of the record type is an external webservice, there could be days when there is an unexpected service degradation that can cause scheduled (once a day) sync to fail.
Do you consider this as an issue and is there a way to get around these scenarios? Please let me know if I missed something.
If DataSource for any record is Database view (data might be coming from different table) then how sync will work..I mean if any table involve in view is updated then data will be refreshed ?
No. Appian does not know about updates in your view. Would a scheduled resync work? With 21.2 you might be able to build that view inside Appian with synced records. Then data would always be up-to-date.
Yes Stefan ,in 21.2 they will have relationship concept among different records. But not sure how to handle sync for the existing record with datasource as View. It the most common practice till now. As per documentation only table can be synced not the database view.
You cannot select a database view as the source for a synced record type. So, you can either leave the existing record type as is or create a new one that directly goes against your source table.
Just curious - what functionality do you have set up in your DB view?
Thanks Peter. Our existing DB views are getting data from different tables with customization on some selected columns. So the case is where record involved data from multiple tables.