I've noticed some inconsistencies between consuming the change feed through the Change Feed Processor Library directly vs through the Functions integration.
When using the Change Feed Processor Library, documents like this are generated:
{
"id": "somegraph.documents.azure.com_obtRAA==_obtRAJvr8AU=..0",
"_etag": "\"47006e54-0000-0000-0000-59d4fdf20000\"",
"state": 2,
"PartitionId": "0",
"Owner": "CosmosChangeIngestionServiceType",
"ContinuationToken": "\"143641\"",
"SequenceNumber": 3322,
"_rid": "obtRAIhO1RIFAAAAAAAAAA==",
"_self": "dbs/obtRAA==/colls/obtRAIhO1RI=/docs/obtRAIhO1RIFAAAAAAAAAA==/",
"_attachments": "attachments/",
"_ts": 1507130866
}
Ones generated from Functions suspiciously omit the Owner
property and set it to null. My understanding was that this Owner
field differentiates the change feed consumer and would allow multiple consumers to track progress in the same Lease collection (which would obviously be ideal). So I'm not sure if it's a bug or something I missed when setting up the Function binding but it seems like currently you can only have one Function consumer per lease collection.
UPDATE:
Just had a weekly call with the Cosmos team and asked them this specific question as well as what the status of other lease storage providers such as Table Storage was. They're supposed to be getting back to us by end of day with some clarifications. I will update further when we get back the official information.