Change stream performance, reliability and monitoring

We have done a POC with mongoDB change streams with 1 tenant database and 1 collection. We are now on the verge of actual product development to use change streams in production. We have let’s may in our US-EAST1 cluster which is a M200 500+ tenant databases and as a team we have couple of questions on scale, performance, reliability and monitoring before going to prod. Can someone please share some insights on these concerns/questions?

  1. Are there limitations with Change stream? Resource consumption being one of them. We are already facing CPU issues with our M200 cluster with existing load. Please consider this operation overhead issue. Also, I believe we need to add additional checks not to expose the sensitive data.

  2. Some consideration on error handling mechanism due to potential issues such as network failures, server crashes, or timeouts

  3. Is performance a major challenge in Mongo stream? ( as we have 500+ Tenants only US region), Pointing 500+ change stream will consume lot of resources? Is it that Mongo Stream is well suited for limited Databases only, but for higher they might not be performant?

  4. Change stream is little challenging with monitoring as its really difficult to monitor multiple databases for any failure. We can resume but as Oplog is not much persist , hence we might loose the data if don’t react on any disconnection in change stream channel. Any thought?

  5. How Changes streams support failover? Lets suppose after the connection is made and then there is failover like secondary is now primary . Will it create change stream again on secondary node? Change stream again will be created on secondary node( Primary node now) ? Does it work with a sharded cluster as in similar way ?

Thanks,
Moni