Curated Resource ( ? )

ActivityPub vs AT Protocol - YouTube

my notes ( ? )

An almost 30min video from Justin Garrison in July 2023 asking: "What is the difference between Mastodon's ActivityPub and BlueSky's AT Protocol?... We're not going to be looking at [apps] ... like Mastodon and Bluesky or Threads" - instead, a mid-level dive into the underlying protocols, and "some pros and cons of each".

Activity pub

"works based on activity streams, which is another spec and these things all are kind of layered on top of each other... activity streams... looks like an RSS feed written in JSON... a stream of data ... that links to other documents and it's in JSON format", not XML.

"Activitypub ... a publish/subscribe model where someone publishes information... people subscribe to it... [plus] reverse communication... [so] actually a two way rss ... data is being pushed out to these places and the data is coming back in and added back into the source data, things like likes and follows and comments".

He finds plenty to not like, eg:

  • "There's no implementation that I have found that allows a user to pull their data out or to trust an external certificate. Outside of running your own instance... that gives you all the other pieces"
  • As the network scales "you just get more and more servers that all need to talk to each other and making a entire mesh ... really hard to scale". A common solution is to block a server that provides too much traffic - not exactly useful for users who have friends there. Very splinternet.
  • "When you go to a new server, you have to be a new user over there. You can't carry your user name", although aliases can redirect your traffic to your new home... as long as the original server doesn't get hacked or goes down, in which case "You can't migrate anything".
  • Even when you do move home, your posts don't follow: you get "the metadata about your alias and your followers, and that's basically it", although your followers are told you moved.

So that amounts to a big risk: if your server is hacked or goes down, you're toast.

AT Protocol

The only app which has implemented ATProto us Blue Sky so "a lot of these things are theoretical... [unlike] multiple active applications built on top of ... ActivityPub ... ATProtoco has one application called Blue Sky that has currently no federation".

Note: that was the case in July 2023. I think things have changed. Anyway, the standard nevertheless has "some things that I really like... because of some of those concerns about Activity Pub".

  • "they separate out what it means to have an identity and what it means to have data... I have decentralized identifier (DID) ... a W3C standard... mainly used in things that are Blockchain based ... in the whole web3 era this is how decentralised identity works... a globally, unique web address... it follows me everywhere... and is globally unique.
  • So "Threads just came out. I don't have to rush and get my user name... I already own a domain ... if it used DIDs I wouldn't have to do anything about it."
  • a personal data server ... where my data actually lives ... [although] videos and pictures probably exist somewhere else... But the PDS is... how to find that information ... structured ... [as] a Merkel tree... storing a history of data and being able to verify that data and link that data one to another... a Merkel tree that has signatures... I actually sign that data as I'm creating it...

"I get one PDS which works with all of the apps ... [without] worrying about ... how did that application secure my data or who owns the keys?", although while I have total creation rights on my data, "you can't delete ... things exist forever... at the PDS level", although they might not be available via the apps.

So "when you like something that like exists forever... I could unlike it ... but the history of me liking and un liking something still exists".

Personally unsure if this is a feature or a bug - publishing means publishing. Note that this "is a problem for activitypub as well".

"How does my data stored on my PDS make it into an application? ... indexing layer... servers that are owned by an application ... go through and read the data from a PDS and you can push data into it.... you don't have to wait for an index... [which] is an application view of what all the data exists that applies to this application", as your PDS can have content for different apps.

The index layer, or "per application crawler... gets of that information from all those PDFs... presents it ... for an app to view", this is where things get expensive.

But anyone can build one of these and present the same data to a different app. "at the PDS level ... lexicons... a structure of data and calls in the URL... allow the crawler to know your PDS implements this application... lexicons are published so that anyone can see what data is in it".

This means "I'm not actually responsible for talking to every server that exists ... I'm just responsible for the data I create and securing that data".

Interoperability

Threads, Tumblr & Mastodon

So "how do these other applications that exist integrate into existing decentralized networks?", with Threads and Tumblr adopting ActivityPub.

"Nothing stops you from implementing new things within your application. So I can guarantee you that Threads is gonna implement things that aren't available on Mastodon... they're gonna keep that for themselves.... Tumblr is going to have different things that are only available on Tumblr".

"Activitypub is how these services might interact together at a lowest common denominator ... [and as] your data still exists with the server... I can't take my Threads data and go to Mastadon... because I don't own the data... [and] Mastadon might choose to block Threads ... because it's expensive to run a Mastadon server... people do not have the money or time to run and secure them... Threads ... and Tumblr can just crush any Mastadon server ... by sending too much data... a lot of them are just gonna block it."

Threads, Tumblr & ATProto

Threads and Tumblr "would have to present a PDS for each user that the Bluesky crawler can fetch data from... and then send to... as likes ... [another] lowest common denominator situation".

Conclusion

Justin Garrison has mostly abandoned his ActivityPub project "because activity pub needs an active server. And my goal was to make this in as passive a way as possible... I think it might be possible with AT Protocol to ... serve static files from a directory somewhere on a web server. But [difficult]... without an active server ... I need some way to receive my comments, likes and ... store them with the data.

Read the Full Post

The above notes were curated from the full post www.youtube.com/watch?v=wJBCpzM1VfM.

Related reading

More Stuff I Like

More Stuff tagged video , activitypub , bluesky , justin garrison , atprotocol

See also: Content Strategy , Fediverse

Cookies disclaimer

MyHub.ai saves very few cookies onto your device: we need some to monitor site traffic using Google Analytics, while another protects you from a cross-site request forgeries. Nevertheless, you can disable the usage of cookies by changing the settings of your browser. By browsing our website without changing the browser settings, you grant us permission to store that information on your device. More details in our Privacy Policy.