What is the difference between a complete delivery and change notifications as the delivery type in a data delivery agreement, and what are their trade-offs?
A complete delivery sends the whole current data set each time; change notifications send only what changed since the last delivery. Complete deliveries are simple and self-healing but heavy; change notifications are light and fast but depend on no change ever being lost.
* A snapshot the IAM compares, or a stream of changes it applies. *
| Complete delivery (Komplettlieferung) | Change notifications (Änderungsmeldungen) | |
|---|---|---|
| What is sent | All records, every time | Only creates, updates and deletes since last time |
| How the IAM finds changes | Compares the snapshot with its own data | Applies the events in order |
| Deletions | Detected indirectly: a record is missing from the snapshot | Must be sent explicitly as a delete event |
| Volume | Large, grows with the data set | Small |
| Timeliness | Usually periodic (nightly) | Can be near real time |
| Error recovery | Self-healing: the next full delivery repairs any drift | A lost or misordered message leaves a lasting error |
A worked case: a person leaves the company. With a complete delivery, the IAM notices that the person is no longer in tonight's file and starts deprovisioning. With change notifications, HR's system has to send an explicit "delete" event; if it is lost, the account lives on.
In practice the two are often combined: change notifications for speed during the day, plus a periodic complete delivery to reconcile drift. A complete delivery also needs a safety net: an empty or truncated file must not be read as "everyone has left".
Go deeper:
Change data capture (Wikipedia) — techniques for detecting and shipping only the deltas, and how they compare with full snapshots.
Extract, transform, load (Wikipedia) — the classic pipeline for moving data between systems, including validation that can reject a bad delivery.