You can go a <i>long</i> way with read-only replication, as long as you have a good failover strategy for writes before you need sharding... The only time you <i>really</i> need sharding is once either your reads or writes require more than a single system in you cluster could keep up with in terms of requests.<p>That said, using something like RethinkDB (not sql) from the start isn&#x27;t a bad thing...  And depending on your needs Cassandra, ElasticSearch and others are viable options... beyond that there&#x27;s no need to stick with a single database for different types of data.  It should be a case by case basis.<p>As to the comments about Postgres replciation&#x2F;failover, it&#x27;s a pretty sad state imho for an otherwise very respectible database.