Hey Leo - your use case is more technically advanced than mine, but I think I deal with the same underlying pattern in a different domain. You've got me thinking :). The entities are different, but I think the underlying systems question is the same: how do you maintain one active record from multiple sources without losing traceability. My use case is different in that it isn’t people’s data I’m updating and reconciling, but task data from multiple business units. Here’s the correlation I see: I have, say, 1,000 daily ops tasks recorded and split between 10 business units, each one producing its own volume of data based on tasks planned, scheduled, and completed. Naturally, the architecture will route to the individual unit folders, but what may be relevant here is how it lands and then passes through the Top Level Operations Parent. What this looks like for me: • I have a ledger where all tasks are tracked: coded by unit, unique task number, and all other typical task data points. The ledger acts as the active or canonical state, the version the rest of the system works from. • On the way in, I need to reconcile the previous state of each task on the ledger. This happens on the fly. • I also keep an attached Changelog table to easily trace material changes to the tasks on the ledger. Since this only happens with a handful of daily tasks at any given time, it’s worth highlighting this change history separately. • The raw source data can stay available as a separate layer, rather than forcing the active record to carry every conflicting or historical value. So, basically, I have three layers: the source data, the active ledger, and the changelog. The agent can work from the lean ledger most of the time, while the other layers are still there when it needs to understand how or why something changed. In your shoes, I would be tempted to do something similar: reconcile on the way in and apply a system change code so you know which system prompted the update to the active record.