title: Design patterns for social networking site like facebook?
body: <p>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):</p>
  
  <ol>
  <li>Adding/removing friends</li>
  <li>News feed</li>
  <li>Messaging</li>
  </ol>
  
  <p>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.</p>
  
  <p>Please note that I am not looking for any language specific solution</p>