Comment on Why do a lot of fediverse instances put their software (i.e. Lemmy/Mastodon) in their name somehow?
rglullis@communick.news 11 months agoserver types
That is the problem. Assuming that we need different “server types” is a mistake made by Mastodon that benefitted them in the short term but screwed the developers who were looking at activitypub as a simple protocol for bidirectional exchange of data.
What we need is smarter clients and let the servers be completely dumb relays. Instead of thinking of “Mastodon API” or “Pixelfed API” or “Lemmy API”, we could be looking at a single browser extension that could talk Activity Stream directly with the server, let the client be responsible for signing messages and know how to present the context when/how to serve the different activity types.
PeriodicallyPedantic@lemmy.ca 11 months ago
Isn’t this just the difference between an API and a protocol?
The payload of a message for one social network will be different based on the capabilities of that type. There are API architectures that are discoverable, like HATEOAS, but that only gets you so far (and that example is based on HTTP not Activitypub).
I don’t really see anything wrong, in the absence of a standard body, for each social network to define its own activity type, since they typically have some degree of unique capabilities anyways.
rglullis@communick.news 11 months ago
Maybe? I don’t know. Is that a relevant distinction on a decentralized system where the application logic can live on whatever side of the network?
Because they are constrained by the “client-server” paradigm. If you spend some time working with decentralized apps that assume that data is available to any nodes on the network, all your “protocol” really needs to do is to provide the primitives to query, pull and push the data around. I kinda got to write about it on an old blog post
PeriodicallyPedantic@lemmy.ca 11 months ago
I think it’s still relevant. I mean… It’s turtles all the way down, but applications on equivalent layers need to share a common API.
I don’t think it’s reasonable to ask voluntary instance hosts to pay for bandwidth and storage for networks they don’t want to host, so mirroring the all Activitypub on all servers doesn’t seem reasonable, especially if any of the networks take off on popularity. Imagine if every single fediverse instance of any type needed to be twitter-scale just because some instance of mastadon took off.
I think it’s correct for servers of a specific network/type to only subscribe to messages of the type they care about, as a purely practical matter. It’d be nice if there was a fediverse standard used to announce capabilities, along with standards for common capabilities and restrictions, but there is none that I’m aware of.
rglullis@communick.news 11 months ago
In my dream world, servers are only relays. They don’t store anything, unless it wants to keeps a copy for one of its clients, like POP3.