
Choose triggers by source behavior
Some systems expose webhooks or change notifications. Microsoft Graph describes notifications for resources that are created, updated, or deleted; an application can use the signal to fetch the changed resource and update a cache or view. Other systems expose a delta token, a modified timestamp, or no incremental API at all.
Make the source contract explicit. Record which changes are visible, how long notifications remain available, whether deletion is observable, and whether the event contains enough data to process immediately. The event should identify work; the worker should fetch the current source version before publishing a derivative.
| Trigger | Good fit | Control it needs |
|---|---|---|
| Webhook or change notification | Frequent source changes | Signature, retry, dedupe, subscription renewal |
| Delta or checkpoint scan | Sources with change tokens | Checkpoint persistence and replay |
| Scheduled incremental scan | Backstop or simple source API | Bounded window and modified-time watermark |
| Human review request | Policy, compliance, or ambiguous changes | Owner, effective date, decision evidence |
Make processing idempotent
Events can arrive twice, arrive out of order, or arrive after a source has changed again. Use a stable key based on source identity and version, and make each step safe to retry. Do not create a second knowledge record because the same event was delivered twice.
Keep ingestion, transformation, review, indexing, and retirement states separate. A document fetched successfully is not the same as a derivative approved for current search. Record the source modified time, ingestion time, index time, and review time independently.
Treat deletion and permission changes as updates
A continuous update mechanism that only adds records creates a knowledge graveyard. When a source is deleted, superseded, or access is revoked, remove or tombstone the derivative, cached answer, embedding, and search result according to the retention rule. A summary remains sensitive even when its original document is moved elsewhere.
Run access tests after refresh. Microsoft Graph notes that change notifications can have latency and subscription limits; the design should therefore include expiry monitoring and a reconciliation path rather than assuming every event arrives on time.
Publish freshness state to the answer layer
The answer layer needs to know whether a source is current, overdue, failed, under review, or superseded. If a required source is stale, say so and withhold a consequential answer when the workflow requires current data. A green response from an old index is not a healthy system.
Use the existing knowledge freshness loop as the operating model, then add source-specific event and reconciliation details for the implementation.
Measure the gaps between events and truth
Track event-to-fetch delay, fetch-to-index delay, review queue age, missed-event recovery, duplicate processing, failed source reads, stale answers, permission defects, and deletion completion. Keep a small set of changed-source tests and run them after connector or indexing changes.
The design is successful when the team can explain what changed, what was processed, what was withheld, and who owns the next repair. Processing volume is not freshness evidence.
Sources and verification
Primary product, architecture, risk, and security sources checked on 10 September 2026. Product behavior can change, so verify current plan and admin documentation before implementation.
- Set up notifications for changes in resource dataMicrosoft Learn
- Microsoft OneDrive eventsMicrosoft Learn
- Indexing document data with Amazon CloudSearchAWS
- Secure multitenant RAGMicrosoft