Salesforce soft deletes records by setting the IS_DELETED field in a record to TRUE. After 30 days, the record is permanently deleted.
The way we are handling the permanent deletion is that we compare the entire Salesforce Object with the records from SAT+HUB. If there is a missing row in the SFDC Source, we take the row from HUB+SAT (non-DV fields only) and add them to staging with a HARD_DELETED_FLAG and HARD_DELETED_DATETIME field. We have added the HARD_DELETED_FLAG and HARD_DELETED_DATETIME fields to the source tables.
Is this a good approach?