Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Thrift,.NET,Cassandra - Is this is right combination?

I've been evaluating technology stack for developing a social network based application. Below are the stack I think could well suitable for this application type of application:

GUI -- ASP.NET MVC, Flash (Flex)

Business Services -- Thrift based services One of the advantage of using Thrift is to solve scaling problems that will come in future when the user base increases rapidly. All the business logic can be exposed as a services using REST,JSON etc., This also allows us to go with C++ or Erlang based services when situation demands.

Database -- mySQL, CasSandara mySQL can be used for storing the data which needs to be persisted. Cassandara will be used for storing global identifiers to the persisted data. Since Cassandara is also very good at scaling by introducing more nodes this will leverage Thrift based services as well. And also there is native support between Cassandara and Thrift

Cache Server -- Memcached

Any requests from Business Services will only talk to Memcached if any non-dirty data is required, otherwise there will be some background jobs that will invalidate the cache from database.

The question is:

  1. Is the Thrift which is open-sourced one is production-ready?
  2. Is it the right stack for services layer to choose when the application (GUI) is primarily gets developed in ASP.NET and DB is mysql?
  3. Is there any other caveats that anyone here experienced?

One of the main objective behind this stack is to easily scale up with more nodes and also this helps us to use Linux boxes, it will reduce our cost significantly

Thoughts please ..

like image 954
asyncwait Avatar asked Mar 20 '10 11:03

asyncwait


1 Answers

You don't give details about your data model, but if you're trying to do something similar to facebook, twitter, digg, or reddit, Cassandra should be a good fit since as you knw those companies are all using Cassandra.

One of the advantages of Cassandra is you shouldn't need a separate caching layer: Cassandra's built-in key and row caches, and the ability to just add machines to scale, make memcached unnecessary.

like image 152
jbellis Avatar answered Sep 19 '22 06:09

jbellis