Posted by nordviks on June 11, 2009 at 12:00pm
I need to create several sites that can communicate with each other in a twitter like manner. Has anyone done this before, if yes how? I can bypass this problem by using a third party webapp, but I don't want to this if I can use Drupal!
I would like to create an Ægir "site group" and let all members of this group be able to communicate with each other.

Comments
I wish this would not show
I wish this would not show up on the front page! I chose the only appropriate category "General discussion".
Some hacking on a related problem
My team needed to prototype a design in which there was a site group with a "master" site and several "slave" sites. The master site needed to query several bits of data on each of the slaves for reporting purposes, and all of the sites needed to provide a common navigation experience (e.g. SSO).
On the Aegir frontend, we basically used the "client" to define the "site group" (i.e. all sites owned by the same client are part of the same group) and then added a boolean to flag each site as "master" or "slave".
On the Aegir backend, we have a "provision_interlink" module which writes a map of related sites. The map appears different on each site, so a "master" site sees a different map than a "slave" site -- e.g. a slave's map includes the title and web address of other sites, and a master's map includes the db_url.
On the master and slave sites, we have an API call which reads the map. For example, slave sites use the API call to build a common navbar, and the master site uses the API call to run queries against the slave DB's.
The approach works fine for prototyping, but it's not a general solution for site-to-site communication, and it blurs some lines between Aegir's layers (e.g. provision_interlink directly queries the hosting database). I'd like to solve this problem by integrating Aegir with a directory service (DNS doesn't quite cut it; we'd need a more specialized web service registry), but it's not a priority right now.
I'm attaching some code from our implementation. Our actual modules aren't quite polished enough for redistribution (e.g. they're written for Aegir 0.1, and they have dependencies that aren't common). But the code should show how we solved this related problem.
WOW! Thank you for sharing this!
Could you please tell me what dependencies have to be changed to make the modules 0.2 compliant?
I must say I hope "site groups" is apart of Ægir in the future!
similar thoughts
I am also working on a project to manage a huge set of multisites which share some tables and not others.
The basic requirement is to have an admin menu on the master site node in aegir and to be able to pull up any module's admin form and then choose whether or not to push the form submission to a group of slave sites.
My first thought was to capture the form submission as a macro, using the macro module and then write a macro plugin for drush and be able to execute that macro to many slave sites via drush automatically. These macros could also be delegated as tasks in the drush sense. The macro could even be a node in aegir and thus it could be executed for any site at a later time as well.
The problem which we are trying to solve is the difficulty of managing complex i18n admin settings forms across 20 or so sites.
This could be extended to do much more with the macro approach... though there may be a better way... maybe we can capture database queries directly upon a form submission and then call those queries directly on the slave sites...
Does anyone have any input or know of any similar projects?
Thanks,
Ryan Grace
Interlink dependencies
Well, one issue is that the code was written for 0.1. I haven't tried 0.2 yet, so I don't know what's required to get the module working on 0.2.
A second issue is a couple of small but problematic dependencies:
The why and how of these two functions would require a bit more discussion. Basically, you either need to rewrite these functions or pull in some more prototype-level modules. On the latter approach, I don't mind sharing the code per se, but I'm not in a good position to offer support.
Shared tables
I have opened a feature request for share tables:
http://drupal.org/node/494446
So that's something I'm interested of working on...