Reach for a column-family store when you have a huge volume of writes, a key you can query by, and a need to scale horizontally across many cheap machines. Time-series data, event logs, sensor readings, user activity feeds, and chat messages all fit well. If your write rate is hundreds of thousands of operations per second and you need predictable low latency, this model holds up where a single relational server would fall over.
The cost is that you give up the conveniences of SQL. There are no joins, foreign keys, or ad-hoc queries across arbitrary columns. You design tables around the exact queries your application runs, which usually means duplicating the same data into several differently shaped tables. Get the access pattern wrong and you may have to remodel and rewrite a lot of data.
Consistency is also a choice you make per operation rather than a guarantee you get for free. With tunable consistency you can read stale data if you favor availability, and features like counters or lightweight transactions are limited compared to a relational engine. If you need complex transactions, rich querying, or strong consistency by default, a relational database such as PostgreSQL is the better tool.