Over the weekend, I digged a little bit deeper into the Jabber world. I realized, that Jabber could be the ideal tool for a distributed CMS system. Sandro and me are currently talking about such a project, but more about that later ;)
I browsed through the Jabber-JEPs and found a lot of interesting “protocols”:
– JEP 27 – Jabber OpenPGP Usage. Additional layer of authentication, if you use GPG/PGP signing.
– JEP 48 – Bookmark Storage. Store “Bookmarks” on the jabber server
– JEP 49 – Private XML Storage. Store your preferences on the jabber server
– JEP 54 – VCard. Store Public Available User Info on the jabber server
– JEP 58 – Multi-User Text Editing
– JEP 60 – Publish-Subscribe. Subscribe to “events”
– JEP 70 – Authenticating HTTP via Jabber. Single Sign On
– JEP 74 – Simple Access Control. “Distributed” Access Control.
My main idea about this is, that all Authentication/UserInfo/etc info is stored on Jabber servers (doesn't really matter, where they are and if one or more). Then you can sign on on any installation of the distributed CMS system, if you have the rights to do so. No need for having local user-lists, which have to be synchronized every few hours.
Furthermore with the Publish/Subscribe system, we would have a nice push-style propagation system between servers for “events” when eg. new content is added. Workflow messages to individual users could also be delivered with Jabber instead of Email. And there are a lot more possibilities as Jabber messages are extensible with your own namespaces.