Commit efdcf66
Add ChangeFeed AllVersionsAndDeletes (full-fidelity) mode
Implements the AllVersionsAndDeletes (AVAD / full-fidelity) change feed
mode, stacked on the LatestVersion change-feed work (#4621).
Driver (azure_data_cosmos_driver):
- Add FULL_FIDELITY_FEED = "Full-Fidelity Feed" and a full_fidelity_feed
flag on CosmosRequestHeaders; write_to_headers emits A-IM: Full-Fidelity
Feed for AVAD (mutually exclusive with Incremental Feed).
- Add CosmosOperation::change_feed_all_versions_and_deletes factory sharing
a private helper with change_feed; both set the changefeed wire-format
version. Unit tests cover both header values and factories.
SDK (azure_data_cosmos):
- New public models ChangeFeedItem<T>, ChangeFeedMetadata, and
ChangeFeedOperationType describing the full-fidelity envelope
(current/previous/metadata), with accessors and thorough unit tests.
- Thread an unwrap_current flag through ChangeFeedPageIterator so AVAD
pages deserialize the whole envelope (T = ChangeFeedItem<Doc>) instead of
stripping current as LatestVersion does.
- Wire AVAD into ContainerClient::query_change_feed, dispatched on
options.mode, and reject ChangeFeedStartFrom::Beginning for AVAD since
intermediate versions/deletes are only retained within the container's
retention window.
- Update ChangeFeedMode docs and both CHANGELOGs.
Deferred (documented as follow-ups): emulator/live AVAD end-to-end tests,
lossless per-range Now resume, and persisting the feed mode in the
continuation token.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>1 parent 3021859 commit efdcf66
9 files changed
Lines changed: 667 additions & 50 deletions
File tree
- sdk/cosmos
- azure_data_cosmos_driver
- src/models
- azure_data_cosmos
- src
- clients
- feed
- models
- options
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
| 8 | + | |
8 | 9 | | |
9 | 10 | | |
10 | 11 | | |
| |||
Lines changed: 111 additions & 34 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
857 | 857 | | |
858 | 858 | | |
859 | 859 | | |
860 | | - | |
861 | | - | |
| 860 | + | |
| 861 | + | |
| 862 | + | |
| 863 | + | |
| 864 | + | |
| 865 | + | |
| 866 | + | |
| 867 | + | |
| 868 | + | |
| 869 | + | |
| 870 | + | |
| 871 | + | |
862 | 872 | | |
863 | 873 | | |
864 | 874 | | |
| |||
867 | 877 | | |
868 | 878 | | |
869 | 879 | | |
| 880 | + | |
| 881 | + | |
| 882 | + | |
| 883 | + | |
| 884 | + | |
| 885 | + | |
| 886 | + | |
| 887 | + | |
| 888 | + | |
| 889 | + | |
| 890 | + | |
| 891 | + | |
| 892 | + | |
| 893 | + | |
| 894 | + | |
| 895 | + | |
| 896 | + | |
| 897 | + | |
870 | 898 | | |
871 | 899 | | |
| 900 | + | |
| 901 | + | |
872 | 902 | | |
873 | 903 | | |
874 | 904 | | |
| |||
894 | 924 | | |
895 | 925 | | |
896 | 926 | | |
| 927 | + | |
| 928 | + | |
| 929 | + | |
| 930 | + | |
| 931 | + | |
| 932 | + | |
| 933 | + | |
| 934 | + | |
| 935 | + | |
| 936 | + | |
| 937 | + | |
| 938 | + | |
| 939 | + | |
| 940 | + | |
| 941 | + | |
| 942 | + | |
| 943 | + | |
| 944 | + | |
| 945 | + | |
| 946 | + | |
| 947 | + | |
| 948 | + | |
| 949 | + | |
| 950 | + | |
| 951 | + | |
| 952 | + | |
| 953 | + | |
| 954 | + | |
| 955 | + | |
| 956 | + | |
| 957 | + | |
| 958 | + | |
| 959 | + | |
| 960 | + | |
| 961 | + | |
| 962 | + | |
| 963 | + | |
| 964 | + | |
| 965 | + | |
| 966 | + | |
897 | 967 | | |
898 | 968 | | |
899 | 969 | | |
| |||
902 | 972 | | |
903 | 973 | | |
904 | 974 | | |
905 | | - | |
906 | | - | |
907 | | - | |
908 | | - | |
909 | | - | |
910 | | - | |
911 | | - | |
912 | | - | |
913 | | - | |
914 | | - | |
915 | | - | |
916 | | - | |
917 | | - | |
918 | | - | |
919 | | - | |
920 | | - | |
921 | | - | |
922 | | - | |
923 | | - | |
924 | | - | |
925 | | - | |
926 | | - | |
927 | | - | |
928 | | - | |
| 975 | + | |
| 976 | + | |
| 977 | + | |
| 978 | + | |
| 979 | + | |
| 980 | + | |
| 981 | + | |
| 982 | + | |
| 983 | + | |
| 984 | + | |
| 985 | + | |
| 986 | + | |
| 987 | + | |
| 988 | + | |
| 989 | + | |
| 990 | + | |
| 991 | + | |
| 992 | + | |
| 993 | + | |
| 994 | + | |
| 995 | + | |
| 996 | + | |
| 997 | + | |
| 998 | + | |
| 999 | + | |
| 1000 | + | |
| 1001 | + | |
| 1002 | + | |
| 1003 | + | |
| 1004 | + | |
| 1005 | + | |
| 1006 | + | |
929 | 1007 | | |
930 | | - | |
931 | | - | |
932 | | - | |
933 | | - | |
934 | | - | |
935 | | - | |
936 | | - | |
937 | | - | |
| 1008 | + | |
| 1009 | + | |
| 1010 | + | |
| 1011 | + | |
| 1012 | + | |
| 1013 | + | |
938 | 1014 | | |
939 | 1015 | | |
940 | 1016 | | |
| |||
966 | 1042 | | |
967 | 1043 | | |
968 | 1044 | | |
| 1045 | + | |
969 | 1046 | | |
970 | 1047 | | |
971 | 1048 | | |
| |||
Lines changed: 109 additions & 9 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
27 | 27 | | |
28 | 28 | | |
29 | 29 | | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
30 | 37 | | |
31 | 38 | | |
32 | 39 | | |
| |||
35 | 42 | | |
36 | 43 | | |
37 | 44 | | |
| 45 | + | |
38 | 46 | | |
39 | 47 | | |
40 | 48 | | |
| |||
43 | 51 | | |
44 | 52 | | |
45 | 53 | | |
| 54 | + | |
46 | 55 | | |
47 | 56 | | |
48 | 57 | | |
| |||
123 | 132 | | |
124 | 133 | | |
125 | 134 | | |
126 | | - | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
127 | 144 | | |
128 | 145 | | |
129 | 146 | | |
| |||
178 | 195 | | |
179 | 196 | | |
180 | 197 | | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
181 | 213 | | |
182 | 214 | | |
183 | 215 | | |
| |||
205 | 237 | | |
206 | 238 | | |
207 | 239 | | |
208 | | - | |
209 | | - | |
210 | | - | |
211 | | - | |
212 | | - | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
| 246 | + | |
| 247 | + | |
| 248 | + | |
| 249 | + | |
| 250 | + | |
| 251 | + | |
| 252 | + | |
| 253 | + | |
213 | 254 | | |
214 | 255 | | |
215 | 256 | | |
| |||
257 | 298 | | |
258 | 299 | | |
259 | 300 | | |
| 301 | + | |
| 302 | + | |
| 303 | + | |
| 304 | + | |
| 305 | + | |
260 | 306 | | |
261 | 307 | | |
262 | 308 | | |
263 | 309 | | |
264 | 310 | | |
| 311 | + | |
265 | 312 | | |
266 | 313 | | |
267 | | - | |
| 314 | + | |
| 315 | + | |
| 316 | + | |
| 317 | + | |
| 318 | + | |
| 319 | + | |
| 320 | + | |
268 | 321 | | |
269 | 322 | | |
270 | 323 | | |
| |||
301 | 354 | | |
302 | 355 | | |
303 | 356 | | |
304 | | - | |
305 | | - | |
| 357 | + | |
| 358 | + | |
306 | 359 | | |
307 | 360 | | |
308 | 361 | | |
| |||
365 | 418 | | |
366 | 419 | | |
367 | 420 | | |
| 421 | + | |
| 422 | + | |
| 423 | + | |
| 424 | + | |
| 425 | + | |
| 426 | + | |
| 427 | + | |
| 428 | + | |
| 429 | + | |
| 430 | + | |
| 431 | + | |
| 432 | + | |
| 433 | + | |
| 434 | + | |
| 435 | + | |
| 436 | + | |
| 437 | + | |
| 438 | + | |
| 439 | + | |
| 440 | + | |
| 441 | + | |
| 442 | + | |
| 443 | + | |
| 444 | + | |
| 445 | + | |
| 446 | + | |
| 447 | + | |
| 448 | + | |
| 449 | + | |
| 450 | + | |
| 451 | + | |
| 452 | + | |
| 453 | + | |
| 454 | + | |
| 455 | + | |
| 456 | + | |
| 457 | + | |
| 458 | + | |
| 459 | + | |
| 460 | + | |
| 461 | + | |
| 462 | + | |
| 463 | + | |
| 464 | + | |
| 465 | + | |
| 466 | + | |
| 467 | + | |
368 | 468 | | |
369 | 469 | | |
370 | 470 | | |
| |||
0 commit comments