There seems to be a lot of confusion regarding Mongodb replication failover and it’s functionality and purpose.
Unlike Microsoft SQL server’s failover’s dependence on Microsoft Cluster servers. Mongodb’s clustering is built into the database application and does not have any software dependencies on the operating system. This was a design feature that enables Mongodb to run on commodity hardware.
Microsoft’s fail over functionality is mainly used to perform database and Operating system patching and other maintenance tasks while MongoDB failover functionality is designed to
detect failures and fail over to a secondary to maintain availability and uptime.
Mongodb’s failovers can be caused by network card congestion, vmware anomalies, and performance bottlenecks in storage, memory, or CPU. They can occur on a daily basis and are part of normal operations. If failovers become excessive, then there is reason for concern and root cause should be investigated.
All Mongodb database production environments should be a replication cluster configuration. This will increase your availability, ability to redirect reads to secondaries, and execute backups on a secondary without affecting the primary performance. This is especially critical when deploying large scale public facing apps and websites.