Question

A developer configures a Record Type with Data Sync enabled and adds a record relationship to a secondary entity. After deploying, they notice that changes made directly in the database to the related entity are not reflected in the record list until several minutes later, and sometimes not at all after a manual refresh. What behavior explains this, and how should they handle near-real-time data requirements?

A
Anonymous
July 11, 2026

Answer

When Data Sync is enabled, Appian maintains its own internal cache of the record data. This cache is updated based on sync events, not on real-time database polling. Changes made directly to the underlying database (bypassing Appian's write layer) do not automatically trigger a sync event, which is why the record list shows stale data.

This is a known constraint of the Appian Data Fabric: it is designed to be updated through Appian-managed writes (via process models, smart services, or record actions), not through direct DB manipulation.

Options for near-real-time requirements:

  1. Route all data writes through Appian so sync events are triggered automatically.
  2. Use the a!refreshVariable() function with refreshOnVarChange if a local trigger is acceptable.
  3. For truly real-time external data, consider a non-synced record type backed by a connected system, accepting the tradeoff of slower query performance and no record relationships.


JuniorRecords#records
Loading comments...
A developer configures a Record Type with Data Sync enabled ... — Records Appian Interview Question | Appian Interview Questions - AppianVerse