Reach for NoSQL when you have a clear, high-volume access pattern, a need to scale writes horizontally, or data that does not fit neatly into rows, such as user sessions, event streams, product catalogs with wildly different attributes, or a social graph. A key-value store handling a billion cache lookups a day is a job no single SQL box wants.
Stay with relational SQL when your data is highly connected and you need ad-hoc queries, multi-table joins, and strong transactional guarantees across records, like an accounting ledger or an inventory system that must never oversell. ACID transactions across many entities are exactly what relational engines were built for.
The real cost of NoSQL is paid at design time and at query time. Schema flexibility becomes schema chaos if nobody enforces structure in application code. And because you optimize storage for specific queries, a new query the data was not modeled for can be slow or impossible without rebuilding how you store things. Pick the database for the access pattern, not the hype.