We are overwhelming nowadays with lots of NoSQL options and NoSQL in general. And it is trendy today to abandon/ignore RDBMS and adopt "blindly" NoSQL, considering that most startup-s/projects can deal pretty good with traditional RDBMS.
Lets start with the NoSQL definition:
NoSQL DEFINITION: Next Generation Databases mostly addressing some of the points: being non-relational, distributed, open-source and horizontally scalable. (+ schema-free (actually implicit schema, which is much worse than explicit) and eventual consistency).
NoSQL (at least the concepts of handling big data) was created by companies such as Google (BigTable), Amazon (Dynamo), Twitter and Facebook. Cassandra and Riak were born from there. It seems only MongoDB was developed on its own, without influences on the papers published by Google and Amazon.
But the most majority of the companies don't operate on a such scale. And RDBMS might be a good fit. I could not found the exact amount of data MySQL or PostgreSQL can handle with reasonable performance (at least PostgreSQL says there are 32TB DBs available PostgreSQL FAQ).
And we still can scale with RDBMS. We can do sharding quite easily (on the application level) (although shards rebalancing is more challenging, and could be an issue, maybe). We even can do replication and scale "reads" that way (considering that we write only to "master"). But in that case we have to deal with distributed challenges: replication delay and eventual consistency. We could do this just for the set of the data (just a few tables, for example), where replication delay is not an issue/big issue.
For even better performance caching can be introduced (redis or memcached).
And you should plan your querys ahead if possible, to get the best possible performance from RDBMS, and build your API on top of it, and not vice versa.
And, of course, there is not substitution for ACID in the NoSQL world, and when you need it, it much simpler to use RDBMS, than trying to invent ACID on top of NoSQL (which is due to CAP theorem, is impossible). Nice summary of PostgreSQL usage and scaling by Braintree: Scaling PostgreSQL
One more use case for RDBMS is usually you split "real-time" tables into report tables, which could have different (more flat structure) do more performant queries or you could create a separate tables/views designed for fast reads (but agree, this adds more complexity, but there are options at least).
So, what are the use cases for the NoSQL in favor of RDBMS, and what is the limit of RDBMS when NoSQL will be the more appropriate solution for the problem. What are the questions system architects should ask before choosing NoSQL.
I do believe in simplicity (although simple is not easy), and NoSQL is not simple as it might sound (there is no free lunch) (plus considering that developers already have a long history of RDBMS expertise, and they are more mature products in general), and you will have your own set of distributed challenges with NoSQL, not to mention more operational work to properly configure and monitor the cluster.