Return to ActivityPub Conference 2019

Opening Keynote 9/7/19: “ActivityPub: past, present, future”

Christopher Lemmer Webber

Video of talk

Christopher Lemmer Webber (@cwebber@octodon.social ; https://dustycloud.org/) is the co-editor of ActivityPub, and a core developer of MediaGoblin.

ActivityPub is built on a client-server model in which actors perform activities on various objects, and the messages needed to do this use email-like addressing.

An Actor could be an application, group, organization, person, or service.

Activities are numerous, but include things like Accept, Add, Join, Reject, Read, and so on.

Objects include things like an Audio, Video, Place, Document, and so on.

And this is all extensible with JSON-LD.

ActivityPub is a response to the early days of federated media when things were very fractured among different protocols that could not talk to each other. It was promoted by the World-Wide Web Consortium (W3C) though a Social Working Group. After three years of work by this group, ActivityPub became a W3C recommendation. As a result, it has grown to over 2 million registered users, over 50 implementations. So ActivityPub has been successful, but that does not mean it is done. There are some problems to be addressed:

  • Users suffer when nodes go down – Nodes are essentially servers, and each user has an account on some specific node. If it goes down, content is lost, and the user must rebuild their network when they find a new node to join.
  • Breadth vs. Depth – Corporate “surveillance capitalism” social media has conditioned us to focus on “who has the most followers”, and even Mastodon has fallen into this trap.
  • Censorship and community – Freedom of speech is complemented by freedom to filter. Preventing someone from speaking is censorship, but deciding not to listen to them is not. It is part of your own freedom to decide who you want to listen to, and tools to help you do that are very necessary. People form communities of like-minded folk around common interests. Consider an e-mail server vs. an e-mail list. Which one is the true community? And many of use are members of multiple communities because we have many interests. Understanding where these communities live becomes important, and helping them to thrive is important. This includes recognizing that different communities have different norms of behavior. This leads to the question of whether peer-to-peer or client-server is the better approach. Peer-to-peer facilitates different communities.
    One way to think about this is that in peer-to-peer everyone connected to the network is both a client and a server. He gives an interesting example of this called Electric Communities Habitat, from 1997. In this space anyone could make their own world, and do whatever they wanted inside of it.
  • Security – Since communities form around shared norms, how do you provide security to enforce those norms? In the corporate media of surveillance capitalism they are grappling with that right now (as I write this) in trying to stop Russian manipulation of elections and other destabilizing behavior, to deal with hate crimes, Nazis, white supremacists, and so on. And so far they have not been doing well with this problem. In a peer-to-peer environment, what kinds of tools do we need? Webber first offers the rule “Only prohibit what you can prevent”, but the notes that we have ways to deal with things that we cannot prevent in-protocol, but can do enforcement out-of-protocol, such as by social requests, social shaming, legal enforcement, and expulsion. So his revised rule is “We must not claim we can prevent what we cannot”.
    Webber then takes a look at some examples, and points out something interesting: emergent behavior. That is something that does not appear explicitly in the rules, but somehow seems to arise out of the rules. When designing social networks we need to take this into account. What kinds of patterns of behavior do we have reason to expect will arise, and is there anything we can do in the rules to shift that behavior?
  • Agency – We need to provide a set of rules that maximizes the agency of users. This means that users have control over the things that affect them.
  • “Revolutions are run by the people who show up.” (heard from Bradley Kuhn)

Listen to the audio version of this post on Hacker Public Radio!