Best architecture for a social media app
Im working on promising project that develops a new social media app for web and mobile. We have just started defining functionalities. Nevertheless, I'm thinking ahead on architecture. So I'm asking:
1 - Whats the best platform to develop the core of this application that will have a Rest API interface.
2 - Whats the best database that will scale and grow with my application.
As far as I researched, these were the answers I found most interes开发者_如何学Goting:
For database: Cassandra NoSQL DB, amazing scalability, amazing write performance, good read performance (will be improved on 0.6). I think i will choose that one.
Zookeer for transactions on Cassandra.
I think these 2 technologies are really good for that propose. What do you think guys?
On the front end it will serve the REST API, i don't have a final candidate. For this one i have questions based on Performance X Scalability X Fast Development/Maintenance.
Java or .Net As far as I researched, brings the best balance of this requisites.
Python, pearl and Rail, has the best (Fast Development/Maintenance), but sux on all other.
C or C++ I don't even consider, because its (Fast Development/Maintenance) sux...
So what do you guys think about it?
Take a look at neo4j in terms of the database. It fits nicely with all the requirements of a social network. It is in fact a network database.
You should take a look at the 10Duke SDK for Social Media http://developer.10duke.com/
It's highly scalable and independent of OS and databases so you can easily configure the environment to suit your needs. The SDK has tons of classes included to support most object models you'll require for building a social app. A lot of the heavy coding’s already done which will save a massive amount of development time.
Also look at memcached. It is a high performing and distributed caching system and will definitely fit your requirements.
I'd start with Rails because it has an active community, lots of innovation, excellent REST support, and it's what I happen to know best. I thought the performance/scalability issues had already been largely debunked by now... tuning and scaling a Rails application requires the same solutions as any other system -- assuming you're ever lucky enough to need to deal with scaling issues.
As far as the data store, I don't know enough about the project or the problems you're trying to solve to recommend anything.
jbellis: yes thats true.
Right now im looking for Django and Cassandra integration, i belive its rly nice plataform, but there is no oficial support or even pespective from Django team support noSql DBs.
Another option that I find interesting is use cassandra with RoR and the Fauna's client developed by Twitter team.
You might be able to pull some functionality from Socialize for the native phone side. (The SDK is open-source).
精彩评论