Re: Federation protocols

Hi Michael - A few years ago there was an attempt to rally people around 
the OStatus stack as a unifying protocol for the federated social web. 
It had some quite severe limitations where it came to privacy. Both 
Friendica and Diaspora emerged around the same time to try and capture a 
wave of discontent over a well-known large centralised provider. Since 
people were crying for privacy at the time, both projects came up with 
independent communication stacks to implement this privacy.

Starting about 2 years ago, we started to see the limitations in all 
three projects. (I should also mention here the XMPP-based projects, 
which had privacy but originally had no decent linkage to web services 
such as online photo albums, web pages, file storage, etc.)  So that 
really makes four - and several other projects which were trying to bolt 
privacy onto OStatus, and many more with their own unique approaches.

At the same time we started to see these limitations, there was a lot of 
infighting on the "federated web". Even though many of these services 
could communicate through either OStatus (which used a "least common 
denominator" approach) or Friendica (which used the "polyglot" 
approach), it turns out that there were some real cultural divides and 
also "policy issues" which really threw a spanner in the works. What 
does it mean to share a private photo album? How do you do that - and 
federate it? What about hashtags? On what side of the fence do you link 
them? (Many services "steal" the hashtag links and point them at their 
own network). What do you do about services which have no distributed 
content deletion mechanism? (This is a big deal, incidentally.) I heard 
no end to the complaints about activity messages saying 'x is now 
friends with y' - because a lot of folks on the indie web are privacy 
extremists and felt this revealed too much information - despite being a 
common activity at that large provider who shall remain nameless. We 
also saw a lot of infighting that was age related. One network in 
particular didn't like folks on another because the members were 
generally older.

An early incarnation of "zot" - Friendica's second generation protocol, 
was designed to be upwardly compatible with all three of the major 
web-based projects in terms of passing messages, and allow for future 
integration with XMPP and email (as well as proprietary and centralised 
providers). It was very quickly scuttled by all the infighting - and 
then many services started rebuilding the walled gardens that Friendica 
had broken down - including some on the indie web.

So about a year ago - we all went back to the drawing board and started 
over. Federation was no longer a goal - when people had it, they 
(apparently?) didn't want it.

Smoothing over "policy differences" is something that cannot be achieved 
by mandating a protocol (unless these are part of the protocol 
definition). It would require enumeration of the issues involved and a 
concerted effort to come up with an acceptable policy base. Then you can 
start talking about protocols. Trying to dictate protocols (such as was 
done in the first generation) when you haven't even figured out what 
problems you're solving and what you're trying to achieve is a bit 
pointless.

In the meantime, we've all moved on. We're no longer trying to build a 
decentralised version of that nameless large provider. We're looking at 
a world far beyond that and asking what a decentralised world of the 
future without that provider looks like. The Diaspora folks went into 
meme generators, and the community they left behind is re-grouping. 
Friendica is moving into the distributed authentication and identity 
space with Red, and Status.Net is being reborn as we speak into a 
privacy-aware ActivityStream pump. These aren't exactly congruent. For 
instance, Red's nomadic identities have no ideal mapping to webfinger - 
on which many of the other projects are inextricably linked.

I think it's a bit early in this new world to talk about bringing them 
together under a common umbrella or even finding a common language. I'm 
more interested in seeing what this new world will look like and what 
this new generation of decentralised projects brings to the table. It 
isn't going to look *anything* like the first generation. Pump and Red 
will eventually be able to communicate, I'm certain of that. We've got 
pieces working now. There are policy differences so the resulting 
communication will probably not be seamless. I've yet to get a good 
sense for where Diaspora is going. They need to figure out what they 
want to be before they can map out how to get there. And I'm hoping we 
can find ways across the XMPP divide, as Buddycloud has also come a long 
way.

And there are 30-40 other projects who are exploring their own visions 
of this new world.

This doesn't really answer your specific questions, but it tells you 
where I think we're at in that process from my own point of view. I'd be 
interested to hear from others and at least keep the dialogue open as we 
head down these somewhat different roads. A federated future probably 
involves passing things that look like ActivityStreams through somewhat 
feature rich web-based APIs. Beyond that, the picture gets a bit fuzzy.

Cheers.

Mike Macgirvin
(the Friendica/Red dude)

Received on Friday, 31 May 2013 00:31:40 UTC