Loomio
December 17th, 2012 17:13

Diaspora, Powered by Tent

Sean Tilley
Sean Tilley Public Seen by 60

This is a discussion pertaining to the attached proposal to work with Tent developers to put Diaspora's frontend on top of Tent's backend architecture.

Sean Tilley

Sean Tilley started a proposal December 17th, 2012 17:26

Diaspora, Powered by Tent Closed 12:41pm - Sunday 6 Jan 2013

Outcome
by Sean Tilley April 25th, 2017 05:15

Motion abstained for now. Thank you all for your feedback. We will explore this again in a few months when a Diaspora-Tent prototype reaches feature parity and tentd can scale to support our pods.

The current proposal is here. Part of the point of this proposal is to see what our community thinks of it, and whether or not we would like to make this a part of our project's future.

Regardless of our involvement or not, the Tent developers are interested in making this port happen as a side-project. The point is not to do all of this refactoring in our own upstream, but rather to develop a working use-case on the side, get it developed to a point of being capable of replacing our current implementation of Diaspora, and in the future, deciding to move to it when Diaspora-Tent is ready.

By working together, we can bridge the Tent community with the Diaspora community, and work towards a higher goal of interoperability and decentralization. It is also worth noting that by switching to Tent's architecture, Diaspora would finally be capable of delivering on its original promises of things such as:

  • Third-party API
  • The ability to export your data to a different pod
  • The ability to authenticate with Tent apps
  • Improvements to how our search system works
  • Federation with other web apps that use Tent's protocol.

It's also worth noting that the Tent devs are willing to help come up with a strategy for converting existing Diaspora accounts into Tent users, so that all of a user's posts, messages, and contacts could be converted over to Diaspora-Tent with nothing lost.

Results
Agree - 3
Abstain - 3
Disagree - 7
Block - 0
13 people have voted (0%)
Petar Petrović

Petar Petrović
Agree
December 17th, 2012 17:36

I'm all for this.

Tom Scott

Tom Scott
Agree
December 17th, 2012 17:51

This is like when Rails chose to replace their HTTP calls with Rack, under the hood. I've always felt that DIASPORA can and should be a more complex wrapper around tent's federated nature, and should at the least interoperate with Tent. Let's do it!

twain

twain
Agree
December 17th, 2012 18:14

Jonne Haß

Jonne Haß
Disagree
December 17th, 2012 18:35

Developing a separate branch and maintaining two diverging trees in such a small development community is the totally wrong approach. Lets focus on http://www.loomio.org/discussions/612 instead. Also way to early to decide on this.

Jonne Haß

Jonne Haß December 17th, 2012 18:37

Once we have the federation part of Diaspora properly modularised adding support for Tent is the matter of writing another adapter, no need to maintain two development trees.

Jason Robinson

Jason Robinson December 17th, 2012 18:48

I strongly agree with Jonne. Let's build on what we have, separate the federation layer and make a nice API and we are in a major win. This will just slow things down and make sure that no progress will happen for a longer period of time. A bit like the work on Makr.io which in the end benefited D* in no way.

Working on the federation can happen without needing to redesign the whole application.

Jason Robinson

Jason Robinson
Disagree
December 17th, 2012 18:49

KK

Kevin Kleinman
Abstain
December 17th, 2012 19:28

From a strategical perspective I think it's a great idea but it may be too early from a technical and organisational perspective. I hope the Diaspora community will do some prototyping. Based on those outcomes, we can continue our discussion. ;-)

M

mathis
Abstain
December 17th, 2012 19:36

twain

twain
Abstain
December 17th, 2012 19:36

Sean Tilley

Sean Tilley December 17th, 2012 19:50

@jonnehaß I don't know whether simply "Writing an adapter" for federation compatibility is the best approach, not to mention that there could be considerable overhead for trying to support multiple protocols. It's not just our protocol schemas that need to be improved, but also the way our system handles federation internally.

Tent's reference implementation for federation, an API, and apps is already modularized in Tentd as a gem, and protocol development is done upstream to benefit multiple social applications, including Diaspora-Tent.

Furthermore, the Diaspora-Tent development tree would be maintained by three of the core Tent devs for the interim. Think of it less as "potential upstream" at this point, and more of a "proof-of-concept prototype" to demonstrate that it might be a good design decision, and may incidentally actually work quite well. Sure, the option to move it into our own tree might take some work, but I think the benefits outweigh the effort of moving it over, and we have the benefit of waiting for Diaspora-Tent to properly ripen before even throwing it into our development branch.

I don't think it's too soon to think about something like this. It's something that affects our future, and frankly an active upstream developing all these things could only help the future of our project.

Dennis Schubert

Dennis Schubert
Disagree
December 17th, 2012 20:03

KK

Kevin Kleinman
Agree
December 17th, 2012 20:03

From a strategical perspective I think it's a great idea but it may be too early from a technical and organisational perspective. I hope the Diaspora community will do some prototyping. Based on those outcomes, we can continue our discussion. ;-)

Dennis Schubert

Dennis Schubert
Disagree
December 17th, 2012 20:03

See Jonne. Also:
- Tent is still owned by a company (yes, they may have plans to change that, but I just care whats fact right NOW)
- Tents HTTP-based profiles could work, but would require some hacks
- Some stuff we need is "not done yet"
- mor

Dennis Schubert

Dennis Schubert
Disagree
December 17th, 2012 20:04

See Jonne. Also:
- Tent is still owned by a company (yes, they may have plans to change that, but I just care whats fact right NOW)
- Tents HTTP-based profiles could work, but would require some hacks
- Some stuff we need is "not done yet"
- more

Dennis Schubert

Dennis Schubert December 17th, 2012 20:14

Sean,
Jonne was NOT talking about the adapter like the twitter- or facebook-stuff.

We already discussed adding a "federation layer" here: http://www.loomio.org/discussions/612 and we really should focus on that one before doing anything else. Really. We should.

When that part is done we can focus on what we should use as protocol, but please not before the abstraction is done. If we have a nice abstraction layer, it's even possible to "play around" with multiple protocols, and that's what Jonne was talking about.

Honestly, I was thinking about blocking this discussion. Without an abstracted federation, we cannot even say what Diaspora really needs and thus any discussions about that are pointless.

"I don't think it's too soon to think about something like this."
All devs do. If you take a look at the messy code we have right now, you'll understand there is no more brain capacity for this discussion.

Sean Tilley

Sean Tilley December 17th, 2012 20:27

@dennisschubert I wasn't talking about the cross-posting functionality. I meant running adapters for multiple protocols at once. Writing a bunch of protocol bridges that all run at the same time could be cause for significant overhead.

Also, the Diaspora-Tent implementation would be done from the ground up using Tent's architecture, with Diaspora's UI on top. It's a clean start, being done by the Tent developers as a prototype, to demonstrate what the protocol can do. So there would be far less mess than trying to jam Tent's architecture into our current codebase, which I agree is pretty messy in parts. Once tentd is proven to scale, and Diaspora-Tent has feature parity with Diaspora-current, we can consider officially adopting it in the future.

The API and federation protocol are already documented, and would significantly lower the barrier for anyone wanting to improve the state of federation in Diaspora, not to mention help make good on the project's original promises.

Dennis Schubert

Dennis Schubert December 17th, 2012 20:42

@seantilley-communitymanager With "prototype" you are talking about the idea @kevinkleinman suggested? Yes, do it if you want to. But that has nothing to do with the work at diaspora-core. And of course all my (and Jonnes, and probably everyone elses) points are against Tent in Diasporas core.

Sean Tilley

Sean Tilley December 17th, 2012 20:51

@dennisschubert I've cleaned up the proposal document on the wiki to better explain. Sure, at the moment it has little to do with Diaspora-Core, but the idea is that in the future, it will be comparable to Diaspora-Current in terms of features and scalability, and may be something we as a community could adopt into our upstream development.

So in a sense, it has everything to do with Diaspora-Core, as it directly affects the potential future of the project, and would establish a broader community of more developers working together towards the same goal of decentralized social.

Dennis Schubert

Dennis Schubert December 17th, 2012 20:53

@seantilley-communitymanager "in the furute". Exactly. And we are back at Jonne's point. :-)

KK

Kevin Kleinman December 17th, 2012 20:54

The way I understand it, this is indeed about building a prototype from the ground up and then seeing if the experience can be applied to Diaspora. I have absolutely nothing against that since in the very least case, Tent is going to have a nice new app.

I suppose the abstration layer stuff can be done by the Diaspora development team simultaneously to the Tent guys building their prototype app. Perhaps we can then link those two pieces together; the clean, modularized Diaspora code and the Tent protocol schemes as used in the prototype. Tent wouldn't have to be in the core.

Or perhaps when the prototype works better than the current version of Diaspora, we'd just have to move everyone over to Tent and then take over the development of the prototype.

diasp_eu

diasp_eu
Disagree
December 17th, 2012 20:59

Flaburgan

Flaburgan
Abstain
December 17th, 2012 22:24

What is the real question ?

(see my post above)

Sean Tilley

Sean Tilley December 17th, 2012 22:27

@flaburgan The real question is, if Diaspora-Tent were in every way comparable to Diaspora-Current, but with Tent's architecture improvements, would we consider adopting the prototype into our upstream development?

Flaburgan

Flaburgan December 17th, 2012 22:27

What is the real question ?

Can Tent developers try to put the Diaspora interface on their protocol ?
Of course they can, it's free software !

Will we help them to do that ?
We can answer to their questions, improve our doc and clean our code. But we have no time to build something, a proof of concept or a real new branch.

Will their poc be the new Diaspora ?
Who knows ? They can make a poc, they will learn a lot by doing that. And if the poc is really good, then we will vote. But it will be in months.

Flaburgan

Flaburgan December 17th, 2012 22:37

The real question is, if Diaspora-Tent were in every way comparable to Diaspora-Current, but with Tent's architecture improvements, would we consider adopting the prototype into our upstream development?

So, refer to the 3rd question below. We will decide it when we will see the poc :)

Steven Hancock

Steven Hancock
Agree
December 17th, 2012 23:50

I can see some potential problems with this (like scalability), but if the Tent developers are putting in the work to make this happen anyway, I think we should see where this goes.

David McMullin

David McMullin
Disagree
December 18th, 2012 10:18

Flaburgan's points are all great. Diaspora is open source so it's totally fine for the Tent guys to make Diaspora-Tent, but to make any decisions about merging / using that before it's actually ready would be ridiculous

Tom Scott

Tom Scott
Abstain
December 18th, 2012 14:53

Changing my opinion on this, because I wasn't aware we even had a proposal. Upon reading the proposal, I have a number of problems with its approach and would like to minimize the amount of UI changes that are going on, in an effort to reduce scope.

Tom Scott

Tom Scott
Disagree
December 18th, 2012 14:53

Changing my opinion on this, because I wasn't aware we even had a proposal. Upon reading the proposal, I have a number of problems with its approach and would like to minimize the amount of UI changes that are going on, in an effort to reduce scope.

Tom Scott

Tom Scott December 26th, 2012 16:30

So after playing around with tent-admin and tentd, I've discovered that while Tent's reference implementation(s) do work, they are still somewhat difficult to hack on. However, I find working with the software to be very straightforward and I look forward to at least a philosophical/sharing-ideas partnership with Tent. After playing with tent-admin, there does seem to be a bit of an issue with the way we work and the way Tent works.

For starters, Tent is "more distributed" than DIASPORA. What do I mean by that? Well, each user is responsible for their own tentd, and a (reference) tentd can only serve 1 user at a time. I'm not sure how the shared Tent hosting works, but if they aren't using anything special I bet it's just launching new instances of tentd-admin for each user that logs in. This is definitely an unsustainable practice, and IMHO Tent will have to figure out a shared hosting paradigm before the network gets too big. Otherwise, it won't, leaving Tent to stagnate in the realm of obscure hackerdom and one of the curiosities of the strange social-networking environment our society has created for itself.

That's why I'd like to see this Loomio thread die, and us continue discussion of a possible DIASPORA/Tent partnership on either the mailing list or somewhere else, because I think the research done from mixing the paradigm of "one server for many users" with Tent's distributed architecture, and allowing a single pod to function as multiple Tent servers.

This can definitely be done, but will probably require a lot of effort on both our and Tent's part.

David Morley

David Morley
Disagree
January 3rd, 2013 00:59