13

I am interested in understanding the design principals to use to create the backend for a social networking site. I read up a few resources and found that facebook uses a graph as an underlying data structure where each node could be user/page/album etc. However, just that does not give me a top level view (block diagram or class diagram) on how to go about implementing a few basic features like (all using the graph data structure):

  1. Adding/removing friends
  2. News feed
  3. Messaging

Any pointers on any resources would be great. I am also interested in finding out if a design pattern exists for a social networking site.

Please note that I am not looking for any language specific solution

smitten11
  • 187
  • 1
  • 2
  • 6

2 Answers2

8

Have you looked at this StackOverflow Thread

and this and this and this?

Please do a search on SO and you will land with many more! None seem conclusive but that's more to do with the nature of your question!

EDIT: You may find this linked in architecture presentation useful!

Community
  • 1
  • 1
Nilesh
  • 4,137
  • 6
  • 39
  • 53
  • 1
    I went through all those posts before asking my question. I want to figure out this problem more from a data structure and design point of view. Since I am new to this domain, all I got from most of those was not to use a relational database – smitten11 Apr 08 '11 at 15:00
  • Ideally also a top level view of the various components and how they come together. I can then go and read about each of these components in detail. – smitten11 Apr 08 '11 at 16:10
  • @smitten11: Just edited the answer to include the top level view of the various components for linked social community site! – Nilesh Apr 08 '11 at 18:22
2

Take a look at Observer Design Pattern, I think it is the base of Twitter, Facebook to publish things at the time line of other people that follow someone.

Maybe these book can help you http://www.designingsocialinterfaces.com/patterns/Main_Page

Here you can find a lot of good information about soial Design Pattern http://developer.yahoo.com/ypatterns/

tarcnux
  • 63
  • 7