Build Cosmos DB change feed processor configs with lease containers, handlers, dead-letter queues, and lag estimation.
Build Cosmos DB change feed processor configs with lease containers, handlers, dead-letter queues, lag estimation, and event routing.
Required Fields
accountNamedatabaseNamemonitoredContainer.nameleaseContainer.namechangeFeedProcessor.processorNamechangeFeedModeOutput will appear here...Build a Cosmos DB change feed processor configuration with a dedicated lease container tracking processing progress per partition, multiple handlers routing different event types to different destinations (Function trigger, Event Hub, or a materialized-view container), and changeFeedMode set to LatestVersion (the default, seeing only the current state after each change) versus AllVersionsAndDeletes (a newer mode that also surfaces intermediate versions and delete events explicitly). startFromBeginning: false means a newly-deployed processor only sees changes from the moment it starts, not the container's entire existing history, which is almost always the right choice for an already-populated production container, since replaying the entire history through every handler (including one writing to Event Hub or triggering a Function per event) could be a massive, unintended one-time processing burst.
The builder validates that accountName, databaseName, monitoredContainer.name, leaseContainer.name, changeFeedProcessor.processorName, and changeFeedMode all resolve before accepting the JSON as a valid combined change feed processor specification; it can't verify the referenced Function app, Event Hub, or target container destinations actually exist and are reachable, those are only confirmed once the processor actually starts running and attempts to deliver events.
Verify changeFeedMode matches what your handlers actually need, a handler relying on explicit delete events (like the materialized view pattern) silently misses deletions entirely under the default LatestVersion mode, this is a common and non-obvious gap.
Always set startFromBeginning deliberately, not by accepting a default, adding a new processor to existing production data with this set to true (or the platform default, if different) can trigger a massive, expensive replay burst through every configured handler.
Size the dead-letter container's ttlSeconds to match how long a failed event is actually worth investigating, an indefinite TTL means the dead-letter container grows without bound if failures aren't actively triaged and cleared.
Was this tool helpful?
Disclaimer: This tool runs entirely in your browser. No data is sent to our servers. Always verify outputs before using them in production. AWS, Azure, and GCP are trademarks of their respective owners.