Advantages consolidating databases
On that page they see all the seasons and all the episodes and all the reviews and all the cast members from that show, all on one page.So from the application perspective, when the user visits a page, we want to retrieve all of the information connected to that TV show.
Each pod is a Ruby on Rails web application backed by a database, originally Mongo DB.In some ways the codebase is a ‘typical’ Rails app — it has both a visual and programmatic UI, some Ruby code, and a database. The visual UI is of course how website users interact with Diaspora.The API is used by various Diaspora mobile clients — that part’s pretty typical — but it’s also used for “federation,” which is the technical name for inter-pod communication.The main technical difference between Diaspora and Facebook is invisible to end users: it’s the “distributed” part.The Diaspora infrastructure is not located behind a single web address.And of course, Mongo DB is an atypical choice for data storage. “Social data” is information about our network of friends, their friends, and their activity.
The vast majority of Rails applications are backed by Postgre SQL or (less often these days) My SQL. Conceptually, we do think about it as a network — an undirected graph in which we are in the center, and our friends radiate out around us. Thanks Matt Rogers, Steve Klabnik, Nell Shamrell, Katrina Owen, Sam Livingston-Grey, Josh Susser, Akshay Khole, Pradyumna Dandwate, and Hephzibah Watharkar for contributing to #rubyfriends!
Diaspora is a distributed social network with a long history.
Waaaaay back in early 2010, four undergraduates from New York University made a Kickstarter video asking for $10,000 to spend the summer building a distributed alternative to Facebook.
Once you set up an account on a pod, it’ll be pretty boring until you follow some other people. The system survives, and even expects, network partitioning.
You can follow other users on your pod, and you can also follow people who are users on other pods. There are some interesting political implications to that — for example, if you’re in a country that shuts down outgoing internet to prevent access to Facebook and Twitter, your pod running locally still connects you to other people within your country, even though nothing outside is accessible. Each pod is a legally separate entity, governed by the laws of wherever it’s set up. On most of them, you can post content without giving up your rights to it, unlike on Facebook.
Other folks say that document databases are perfect for social data, and those mainstream enough to actually be used.