A replica set is great when we understand why we need it and what it cannot do.
A replica set:
- Will not scale horizontally; we need sharding for it
- Will introduce replication issues if our network is flaky
- Will make debugging issues more complex if we use secondaries for reads and these have fallen behind our primary server
On the flip side, as explained in previous sections of this chapter, a replica set can be a great choice for replication, data redundancy, conforming with data privacy, backups, and even recovery from errors caused by humans or otherwise.