Last weekend we went to the Free Society Conference and Nordic Summit in Gothenburg to talk a bit about the new direction Midgard has been taking: making it a general replicated persistent storage library for multiple programming languages. The CMS itself is just an application using the library.
The basic idea is that the cloud is a trap that will move your data, and your applications beyond your control to proprietary data servers and web applications run by multinational corporations. If free software doesn't provide a compelling answer to that, we risk irrelevance.
A replicated, peer-to-peer system of synchronizing and sharing your data could be the answer. And Midgard2 is a framework providing just that. Bindings to different languages like PHP, Python and Mono, interprocess communications via D-Bus and XMPP, replication, and ability to run the same software from big server clusters to Nokia internet tablets should all help us get there.
In the conference we focused on outlining the big vision, and then ran a workshop where we showed some practical aspects of this. We set up Midgard2, and built a web application that allowed user to input a RSS feed address. This was stored to the database via midgard-php. Then a midgard-python process got notified about this via D-Bus, fetched the items and stored them to the database. The web front-end then displayed the articles. A clean example of interprocess communications.
Peer-to-peer replication we demonstrated in Ville Sundell's XMPP workshop where we built a Python replication daemon monitoring for database changes via D-Bus and transmitting them via Jabber to other Midgard boxes. Quite promising! But still many things need to be written before we are in the "your data everywhere" utopia...
Oh, and for those wondering: Midgard2 is very much GNOME software, running on top of GLib, libgda, D-Bus and so forth.