[Idea] Replace monolithic Sync diff with per-record diffs #623
Labels
status: action required
This issue requires additional information to be actionable
status: gathering feedback
Further discussion is needed to determine this issue's scope and/or implementation
status: internal review
Internal discussion is required to move forward with issue
type: major feature
Environment
Proposed Functionality
As noted in #144, #53, #140, etc., the current approach of storing the entire diff set for a given sync run in a single JSONField in a single Sync record doesn't scale well at all. To be able to usefully and performantly represent syncs involving 10k, 100k, or more changed objects, we should consider a different database representation for diffs.
The most "obvious" approach would be a single database record per changed object, with the UI taking responsibility for asynchronously fetching all relevant records associated with a given sync in order to provide a unified view of the synced changes as a whole.
I would say "just use core's
ObjectChange
model for this", but:So given that, we probably need a dedicated
ObjectDiff
model specifically in SSOT.Use Case
Scalability and performance.
The text was updated successfully, but these errors were encountered: