Decision
Quarterly: the full customer base against the full list. Daily: new customers against the full list. On designation change: the full customer base against the new designations.
Context
A daily full cross-join is unaffordable; a delta-against-delta comparison is unsafe.
Alternatives, and why not
- Daily full comparisonThe cost scales with the product of two growing sets, for a result that is unchanged for the overwhelming majority of pairs.
- Compare only what changed on both sidesIt misses a newly designated party matching an existing customer, which is the single highest-consequence case in the whole system.
Rationale
Take a delta on exactly one side at a time, and pick which side based on which thing changed. The quarterly full run exists as a backstop against anything the event-driven runs missed.
What it cost
Three code paths and three schedules to operate, rather than one.
Outcome
Complete coverage of both change events at a fraction of the cost of daily full screening.