5

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 ..

Community
  • 1
  • 1
asyncwait
  • 4,457
  • 4
  • 40
  • 53
  • Clients in a social networking setting use a browser, not a compiler. Why do you need this? – Hans Passant Mar 20 '10 at 13:07
  • @nobugz:can you elaborate your comment? – asyncwait Mar 20 '10 at 13:25
  • You'd better elaborate your question if you want a good answer. It is a very generic library, what do you specifically want to use it for? You should also post a link to the project, "Thrift" was a poorly chosen name for an open source project, it doesn't google well. – Hans Passant Mar 20 '10 at 13:35
  • @nobugz: added more details, thanks for your suggestion – asyncwait Mar 21 '10 at 12:12

1 Answers1

6

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.

jbellis
  • 19,347
  • 2
  • 38
  • 47