
Most use cases of ActivityPub would be better off as Atom or RSS feeds - angrygoat
https://beesbuzz.biz/blog/2535-ActivityPub-hot-take
======
cjslep
I feel need to address some points of the authors (I realize it's a hot take
so it's meant to be biased):

> But what does this buy us? For the most part it means that every piece of
> content everyone writes needs to be replicated to every point in the
> federation mesh to be useful.

This is because ActivityPub is tied to RDF and linked data concepts. This
isn't specific to ActivityPub, just a criticism of the linked data web. As we
will see later, the author doesn't quite understand that linked data can be
fetched only on demand and represented otherwise as only an IRI, reducing data
replication to a minimum. It depends on the specific ActivityPub
implementation.

> This isn’t creating a distributed network, this is creating a whole bunch of
> massive points of failure.

This is a pretty ungenerous characterization. It's a distributed system where
robustness is not a part of the protocol. It needs to be solved elsewhere, so
innovation is needed.

> Meanwhile, what does this buy you? Immediacy of updates? Okay, does it
> really matter how quickly you see someone’s new content, if it’s worth
> seeing?

I think this is another ungenerous characterization. It buys a federated set
of communities and applications that can exchange linked data in real time.

> For example, user-agents and RSS providers can use the If-Modified-Since:
> header to only get the feed updates if the content has changed since the
> last fetch.

ActivityPub also has a diffing system of data in place with Update activities
too.

> Oh, and ActivityPub stuff generally also means that all attachments and
> other content also get replicated.

This is not true and is entirely implementation specific. If Mastodon creates
local caches of federated data, that's it's design choice. Other applications
can always fetch-on-demand and go back to the Pull Model.

That being said, static sites are not served by ActivityPub so that portion of
criticism is definitely spot on.

~~~
nicoburns
For me, a key negative witb ActivityPub is the complexity. The RSS/Atom spec
is pretty simple, and it fairly easy to see how it could be extended to allow
for similar functionality. What are the disadvantages to an RSS based system?

~~~
nine_k
RSS is poorly specified, and cannot handle any feedback.

Atom is well-specified, and has provisions for feedback. But what user agents
/ popular libraries / whatever else actually uses the feedback (commenting)
features? Which servers that serve Atom feeds support that, too, and how well?

------
vorpalhex
This reads pretty distinctly like "Get off my lawn you damned kids with your
attempts at decentralization!". ActivityPub is a pretty new protocol and what
it looks like in the wild is still evolving - but it's clear it's filling
different voids then RSS.

Sure, you could probably force most of these cases with some hacked up RSS
implementation, and I can also use a longsword to mow my lawn. I'm personally
very excited to see what ActivityPub brings with it and projects like PeerTube
show that it's an extremely capable protocol even if we're still learning how
to best use it and implement it.

~~~
chipotle_coyote
Well, an alternative reading of this is "maybe we can solve _some_ of the same
problems with IndieWeb principles instead of ActivityPub."

[https://www.indieweb.org](https://www.indieweb.org)

These are not "hacked up RSS"; they're just RSS (well, more often Atom or JSON
Feed) combined with other technologies like webmentions. These are all, like
ActivityPub, IETF recommendations/standards. I've mentioned Micro.blog before,
but it's worth mentioning again: it's a centralized server producing a
Twitter-esque timeline, but the sources of posts might be individual blogs
using any number of different blogging engines. When I post articles to my
WordPress site, people can reply on Micro.blog and have those replies show up
both in their timelines and as actual comments on my blog. (And in fact,
behind the scenes, a "hosted" Micro.blog site is actually using all the same
technologies, with Jekyll as the blog engine.)

As much as I like many things about Mastodon, I'm not convinced that it's a
superior _philosophy_ to Micro.blog's; the dark cloud to federation's silver
lining is that the admins of any instance that your social graph connects to
(that is, you follow someone on that instance and/or vice-versa) can break
those connections without warning and with no recourse to you, beyond moving
to another instance and hoping it doesn't happen again.

And, speaking more generally, I think the author definitely has some points
that shouldn't be dismissed out of hand: it's possible that ActivityPub might
indeed be better than other feed protocols at solving certain problems, but
it's worth looking at each use case and asking if that's really true in _this_
case. PeerTube might be one that ActivityPub excels at and that feeds don't,
for instance. (I don't see anything about PeerTube's implementation that
proves what it's doing with ActivityPub couldn't be done just as easily with,
say, JSON Feed, but I haven't dug into that.)

~~~
drb91
I think the main draw of Mastadon is that it's an intentional experience, with
blessed clients, discovery, etc etc. I'm unlikely to read _anyone 's_ blog if
it's not put in front of me somehow. Furthermore, all I need to do to interact
is install the client; I don't need my own site to do it.

Overall I think your argument is very strong if you can provide a comparable
experience to mastadon. If not, then it's not clear why the benefits are worth
it.

~~~
chipotle_coyote
Micro.blog proves it's possible to provide a comparable experience--in some
ways I prefer it, although that has much more to do with its aesthetics and
nascent culture than any underlying technology. At any rate, if your blog is
hosted on Mastodon itself, you don't even have to know it's a blog, per se--
you can just use it exactly like Twitter.

The catch right now is that Micro.blog is a paid service. I don't see any
reason why someone couldn't set up something very similar built on the same
tech--other than, of course, the willingness to put in the time and money. :)

------
berbec
I'm not an ActivityPub user, but this post remindeds me of the initial
comments to "Show HN: Dropbox" [1].

"For a Linux user, you can already build such a system yourself quite
trivially by getting an FTP account, mounting it locally with curlftpfs, and
then using SVN or CVS on the mounted filesystem."

1:
[https://news.ycombinator.com/item?id=8863](https://news.ycombinator.com/item?id=8863)

~~~
wnevets
I wonder how that user feels about always being referenced in this context.

~~~
always_good
Five months ago:

> It's funny how often that comment—which I made as a 22-year-old
> undergrad—resurfaces. Someone even reached out to me 2 weeks ago because
> they wanted to use it in an article as an example of "the disconnect between
> the way users and engineers see software"!

> I like to think that I've gained a lot of perspective over the last 11
> years; it's pretty clear to me that point #1 was short-sighted and exhibited
> a lot of tunnel vision. Looking back, though, I still think that thread was
> a reasonable exchange. My 2nd and 3rd points were fair, and I conceded much
> of point 1 to you after your reply (which was very high quality).

> Obviously, we have the benefit of hindsight now in seeing how well you were
> able to execute. Kudos on that!

------
edhelas
I agree with those statements.

That is why we are using Atom on top of Pubsub in XMPP to built social
networking features. The sub-layer is changing (Atom is embeded into Pubsub
XML on top of TCP real time streams, XMPP) but in the end the content is not
"transformed" but just "transported".

Atom already provides most of what ActivityPub provides regarding the
description of the content (rich content, attachments, external links,
comments, reply-to...).

You just need to put it on top of a layer that specifies how this content can
be accessed, subscribed and delivered. In our case it's XMPP Pubsub but it can
also be pure HTTP requests. Good thing is that moving from one to another is
pretty easy.

This is a static page generated from Atom articles published on a XMPP Pubsub
feed from TechCrunch RSS/Atom feeds
[https://nl.movim.eu/?node/news.movim.eu/TechCrunch](https://nl.movim.eu/?node/news.movim.eu/TechCrunch),
we can even generate back an Atom feed from it easily. On a similar way you
can handle personal "blogs"
[https://nl.movim.eu/?blog/edhelas@movim.eu](https://nl.movim.eu/?blog/edhelas@movim.eu)
with likes, shares and comments :)

The XMPP Standard Fundation is working for more than 10 years now on
integrating those concepts together and glueing existing standards to deliver
social-features next to IM features and so on...

You don't have to create "new standards that will cover everything else" (see
[https://xkcd.com/927/](https://xkcd.com/927/)) if you can just glue the
existing ones together.

------
phoe-krk
The author doesn't see the difference between ActivityPub as a specification
and implementations of ActivityPub that make some implementation choices of
their own. No one forces the AP clients or implementations to build local
caches, no one forces them to replicate everything on their own.

------
giancarlostoro
That's weird that you have to download from a whole other instance, I would
have thought the client requests what it needs when it needs it, and points to
some sort of UUID to another instance that can be queried later by a client.

I'm really lovestruck by the capabilities of ActivityPub and I want to work on
a federated Tumblr alternative, but I just have not found the time with all
the personal stuff I have going on currently, but ideally you wouldn't store
everything on your instance (unless you rather cache it, now THAT makes
perfect sense to me) you would let a browser request certain things via AJAX
and maybe your instance could tell the other instance, hey guy you keep asking
me for this waaay too often, can you cache it for me? kthxbai and those who
don't do it would be considered broken instances and possibly rejected? Not
sure I feel like the protocol is still way too young. Also not sure about the
security implications but let's assume that sane SSL cryptomagic is a
requirement for blogging instances (or just all of them).

~~~
aepiepaey
Pet peeve: it's "would have", not "would of".

A problem with opportunistic caching would be degraded user experience for the
first user that sees some specific piece of content, since they'd have to wait
(potentially for seconds) for their instance to fetch the content from the
origin instance.

~~~
xj9
pleroma's media proxy is works just like that and the user experience is fine.
actually, i've run instances that don't have caching configured and it still
works fine (if a bit unfriendly to other instances).

------
viswanathdurbha
I like the W3C WebSub standard (formerly known as PubSubHubbub) which uses
RSS/Atom underneath to syndicate content. The only catch is that it requires a
publicly visible URL for callback. This is great for services like Feedly but
may not work for individual subscribers who just want to use a client
application and not run a server with public facing URL. But maybe, this is
better than running a Mastodon server because we can still have the benefits
of a simple Atom format and protocol.

~~~
dragonwriter
> I like the W3C WebSub standard (formerly known as PubSubHubbub) which uses
> RSS/Atom underneath to syndicate content.

While you can use Atom/RSS with WebSub, WebSub doesn't expressly use any
particular syndication format (it can distribute any content directly, not
just Atom/RSS feeds) and hasn't, IIRC, since one of the PubsubHubbub drafts (I
think 0.3, but maybe 0.4.)

------
comesee
Yeah, I've long thought that the syndication that happens via server-server
communication could be replaced with a smarter client. As far as UI goes,
Twitter seems more like a browsable network, e.g. @ IDs, follower/follows
lists, and those features seem to be key, not the specific transport. Would
like to see something like Mastodon but based on RSS.

------
rinze
Some weeks ago I replaced my long-closed Twitter and Facebook accounts with an
RSS feed:
[https://rinzewind.org/shared.xml](https://rinzewind.org/shared.xml). Given
that 99 % of what I was doing there was share articles, this works pretty much
the same (and it's troll-free!)

------
skybrian
It seems like you would want to support RSS, Atom, and ActivityPub to allow
both news readers and newer things like Mastodon to work?

Maybe RSS could be dropped? Are there news readers that support RSS but not
Atom?

~~~
cdcfa78156ae5
> Maybe RSS could be dropped? Are there news readers that support RSS but not
> Atom?

Unfortunately yes. Gnus has not gotten Atom support yet (people keep using
external programs to translate). Also far too many feeds still output RSS
instead of Atom. RSS is a horrible format and there is no reason today to use
it instead of Atom.

------
floatboth
Forget RSS/atom, use microformats2 h-feed.

[https://indieweb.org/sidefile-antipattern](https://indieweb.org/sidefile-
antipattern)

And there is existing tech for the popular reply-like-repost UX for this,
based on webmention.

~~~
d2wa
Are there any feed clients that support h-feed? I’m legitimately asking. I was
looking for a h-feed capable client (like a traditional feed reader with
h-feed support) only a few days ago and came up with none.

~~~
floatboth
[https://indieweb.org/reader](https://indieweb.org/reader)

Usually things that integrate more into the whole indieweb ecosystem, but some
are (plugins for) more traditional feed readers.

------
qwerty456127
I actually dream about bringing Atom (as far as I understand it's better than
RSS but RSS just seems a better brand-name for this, in fact in many cases
when you click on a link that says RSS you'll get Atom) back, expanding it
with social functionality like likes, reposts and comments, implementing it
better (auto-generated feeds on many sites are pretty crappy) and popularizing
generic feed readers so non-geeks would be able to interact with others' self-
hosted blogs (like my blog built on GitHub Pages) as easy and fun as it they
do with Facebook, Instagram etc.

~~~
cdcfa78156ae5
> expanding it with social functionality like likes, reposts and comments

One of the problems I had with blog comments is spam. Blogger would queue up
moderated comments and send you an email about them. The idea occurred to me
that that was redundant and it would be better to cut out the middleman - you
are getting email notifications about comments needing moderation, and email
already had long established and much better spam filtering. Why not have
people submit comments via email? That way you can also reply to people
privately. This is also convenient for people who read their feeds via RSS-to-
email or in newsreaders/email clients like Thunderbird and Gnus.

Another aspect of comments via email is that it is much more like a letter to
the editor. Your blog posts are articles, and you can choose to update them
with corrections and comments that people send in, instead of trying to manage
a half-baked message board that is the standard
LiveJournal/Blogger/Wordpress/Disqus comments section.

I think an easy and valuable way to get non-geeks to use web page feeds more
is to provide the option to sign up for the feed via email, by offering a
"newsletter" option.

~~~
qwerty456127
I upvoted your response as your ideas are very reasonable but as for me, I
don't like e-mail for a number of reasons, both psychologically subjective and
technical.

The first things the e-mail ecosystem is to do to become more adequate to the
modern day world are to deprecate all the codepages but UTF-8 for any part of
a message (header included), eliminate the overquoting tradition (including
full text of the message the message is a response to) and introduce an
efficient thread tracing mechanism instead, establish a more reasonable
signature culture (i.e. people and software to stop including redundant and
useless information in the bottom of every message) and make Markdown a core
part of the standard (while HTML should better be deprecated).

~~~
cdcfa78156ae5
Those are all very good ideas for email. Part of it could be dealt with in
RFCs, part of it by changing default email client behavior.

I also agree that email should be a personal preference. I think that
DFeed[1][2] shows how open discussion systems should be built. DFeed provides
a unified discussion system that is simultaneously accessible through email,
NNTP, a web interface, and Atom feeds. That would be a really nice way to
offer a comment discussion system on a blog.

[1] [https://forum.dlang.org/help#about](https://forum.dlang.org/help#about)
[2]
[https://github.com/CyberShadow/DFeed](https://github.com/CyberShadow/DFeed)

------
lazyjones
It doesn‘t seem very smart to download a whole RSS feed for users who tweet 5
times a day every time they do it, it‘s 9000 entries after 5 years.
Incremental updates are fine and scale.

~~~
_wmd
Push architectures are no panacea, they create problems all of their own. For
example in an unregulated landscape like the Internet, it becomes difficult to
impossible to control the flow of updates to any individual peer. Options are
unsubscribing or dropping updates, resulting in data loss.

The equivalent scenario in polling land produces a better result: an
oversubscribed producer that begins dropping requests will typically just
cause a transient delay, as clients retry at a later time.

RSS feeds commonly _don 't_ include their full history - certainly this is
true of the biggest providers like Blogspot.

Finally a good client will know to adjust its polling delay according to the
traffic of a particular feed. This is a <5 line function, and something Google
Reader was implementing a decade ago.

Pull-based systems of course suffer from latency, but they require vastly less
centralized state and coordination than a push based system, and suffer from
much less painful failure modes

Most exciting of all (in my opinion), is that pull-based designs can exist on
top of all the infrastructure that already existed, rather than requiring
dedicated active network components all of their own -- that's a whole lot of
crap code we can avoid rewriting over and over again for the next decade.

------
trynewideas
Most use cases of new thing would be better off as old thing.

------
k__
I don't believe in federated solutions, but I'm also not sure if and when our
end-user devices are ready for p2p.

~~~
smolder
P2P and self hosted stuff is what I want out of the internet, not SaaS style
platforms. People's cable modems are _almost_ always on so it's reasonable for
them to have some almost-always-on services behind them, but circumstances
make it difficult to build viable P2P tech:

\- It's tough to monetize since true p2p software can just get pirated. You
can't gatekeep to make sure people pay.

\- The shortage of IPv4 with the help of buggy insecure operating systems made
closed-to-the-outside NAT standard, making peers inaccessible without manual
configuration or some helper technology.

\- Data hungry government and corporations see independent communication
channels as an obstacle to their goals. (See the recent story about five eyes
pushing for backdoored crypto in Australia.)

~~~
rocky1138
I've always felt that NAT ruined the internet. It made it basically improbable
that someone might host something at home like the internet was made for.

~~~
cdcfa78156ae5
If you care about this, the best thing to do is to start using IPv6, and
insisting on IPv6 support in any interactions with service providers (SaaSS,
hosting, data providers, etc.) that you have.

~~~
rocky1138
All my sites support IPv6. My router is horribly old and doesn't. But, once it
kicks the bucket, I'll be sure to get an IPv6-compatible one.

