If you are not sure whether N will ever be reached, then you don't need to deploy Cassandra until you reach a point where you're sure it will be reached.
No, I am not sure I will even get past one, just hopeful.
If your application's scale is planned (i.e. by management who do planning-type things) to exceed what you can reasonably get out of a conventional database (with or without various types of scale-out solution), then Cassandra might be the right solution for you.
I am not only interested in Cassandra because of its load balancing, scaling and failover properties. If I understand correctly it is also an extremely fast datastore. Wouldn't I save a lot of effort to design and build a data access layer (sharding, replication and caching) by using Cassandra?
One of the purposes I want to use Cassandra for is custom HTTP session replication. Instead of storing the values in the session of the servlet container I want to store them individually using unique keys in Cassandra. I was hoping Cassandra would be fast enough for this.
I feel that developing an application for Cassandra is a lot more difficult than a "traditional" database, ...
What is a lot more difficult to do using Cassandra? I intend to use a SQL database for all the really important stuff (credentials and stuff involving money), and use Cassandra for less important information. I understand I have to think about doing things without transactions and designing things to be idempotent.
Regards, Johan
