Today's big tech news is the announcement of also-ran browser company Opera and their Unite service.
The Promise of P2P
The concept sounds interesting enough: Give every client a built-in publishing mechanism so that users don't have to rely on intermediary services. The supposed advantages are plenty: Increased network resilience, lower content distribution costs, infinite horizontal scaling, democratisation of communication, etc.
For example: Micro blogging on your own edge service instead of on a centralised service like Twitter. Your followers receive updates directly from your computer. No more fail whale taking out the entire world's micro blogging.
Conceptually that sounds great but Opera chose to implement it using HTTP. They "solved" the problems of NAT/firewall piercing, and keeping content available when your computer goes offline, by building a massive proxy server for the whole world to use. Forgetting the privacy and security concerns, or even the cost of scaling that service, I just can't get over how stupid it is to have a centralised proxy when you're building a decentralised network. Sounds like all they had was a hammer and thought this problem was a nail.
At risk of just choosing a different hammer, I would suggest XMPP as a solution to the P2P problem. Its mix of a distributed federation of servers and out-of-band P2P connections solve a lot of the scaling problems that traditional client-server models have. XMPP comes with a lot of protocol infrastructure already in place which has been thought over and implemented by really smart people. Technologies like Pub-Sub, MUC and Jingle to accomodate many types of applications. Content addressing and discovering is provided already. Authentication, encryption and compression come out of the box. Content can be cached on the XMPP server or distributed through a pub-sub/muc service which has its own history storage.
So come on Opera... join the XMPP revolution! Let's build the real time web on technology that works.