K3 (Lektion 3.6.4) hat den Change Feed in einem Absatz erklärt: Der Standardmodus sieht keine Löschungen, der Modus „all versions and deletes“ schon, und der Change Feed Processor liest ihn in .NET. Diese Lektion baut damit etwas: den Aktivitätsfeed von Kladde.Verlauf. Wer einen Termin anlegt oder ändert, soll im Feed „Termin geändert“ sehen, ohne dass die schreibende Anwendung davon weiß. Der Feed liegt im Container events (Schlüssel /officeId, /day, TTL 90 Tage, F-03), gespeist aus appointments, mit dem Leasecontainer leases.

Nicht gegen Azure ausgeführt. Der Code wurde mit Microsoft.Azure.Cosmos 3.64.0 und Newtonsoft.Json 13.0.4 übersetzt. Gelaufen sind nur die Abbildung einer Änderung auf ein Ereignis, der Verbraucher gegen einen Speicher im Arbeitsspeicher und das Lesen einer Löschung aus JSON (Übung 1). Processor, Pull-Modell und Copy-Auftrag liefen weder gegen ein Konto noch gegen den Emulator; ob der Emulator den Change Feed kann, wurde nicht gelesen (offen). Das Verhalten des Dienstes stammt aus Microsoft Learn, gelesen am Tag des Schreibens.

Zwei Modi

latest version all versions and deletes
Inhalt Anlegen und Ändern; nur die letzte Fassung je Element Anlegen, Ändern und Löschen, jede Zwischenfassung
Löschungen nicht im Feed (Ausweg: Löschkennzeichen am Element plus TTL) im Feed, auch das Ablaufen per TTL (mit Kennzeichen)
Start Anfang, Zeitpunkt, „jetzt“, gespeicherter Stand nur „jetzt“ oder gespeicherter Stand
Aufbewahrung keine feste Frist nur innerhalb der Frist der kontinuierlichen Sicherung
Voraussetzung Standard, jedes Konto außer Table und PostgreSQL kontinuierliche Sicherung (Lektion 3.2), Funktion am Konto einschalten (bis 30 Minuten), nur NoSQL, SDK ab 3.60.0
Operationstyp keiner (_ts, _lsn zusätzlich) create, replace, delete in den Metadaten

Weiter gilt im zweiten Modus laut Learn: Konten mit zusammengeführten Partitionen (Merge) werden nicht unterstützt; die vorherige Fassung eines Elements erhalten Sie nicht; ein gelöschtes Element liefert nur Metadaten mit id und Schlüssel; Elemente aus einem Batch oder Bulk haben denselben Änderungszeitpunkt, ihre Reihenfolge ist nicht garantiert (Lektion 2.3). Der Processor-Artikel von Learn nennt den Modus für .NET eine Vorschau, der Artikel über die Modi nicht: Prüfen Sie den Stand am Tag Ihrer Planung (offen).

Entscheidung für den Aktivitätsfeed. „Termin angelegt oder geändert“ genügt latest version, ohne kontinuierliche Sicherung; da dieser Modus keine Operationsart kennt, heißt jedes Ereignis zunächst „changed“. „Termin gelöscht“ braucht den zweiten Modus oder ein Löschkennzeichen, das die Anwendung vor dem Löschen per TTL setzt. Die Kladde startet mit latest version und schaltet die Löschungen ein, sobald die Sicherung nach Lektion 3.2 steht.