Activitypub Conformance for Interoperability Discipline (ACID?)
Full-time members:
- @bengo (San Francisco) - Protocol Designer, Testing Engineer[1]
- @bumblefudge (Berlin) - Community and Governance Wonk[2]
Summary
We would like to further iterate, evangelize, and find more open governance for a protocol conformance toolkit (aka “test” “harness” and “suite”) that we initially prototyped with generous support from Germany’s Sovereign Technology Fund over the last few months. Refining the artefacts in dialogue with a community input and co-governance model would turn these artefacts into something more like a conformance regime symbiotic with further decentralized protocol design.
Thinking of ActivityPub as a low-level technosocial protocol comparable to email or RSS, we think this process can be fruitfully brought into dialogue with other protocols specifically designed with open and decentralized governance in mind, which both of us are deeply familiar with from years of experience with web3 startups and FOSS. In parallel with the ActivityPub project, we also hope to produce some templates, tutorials, design notes, and other documentation of reusable patterns for projects seeking to make protocol-centric interoperability more testable and thinkable for decentralized technological communities.
Q & A
What is the existing target protocol you are hoping to improve or enhance?
ActivityPub[3], which has famously “not” “had” an “official” test suite since standardization at W3C in 2018.
Despite being largely hostile to commercialization, until recently devoid of any remunerated recruitment or user acquisition whatsoever, and a splintered technical community, this protocol has been growing slowly and organically since 2019, reaching millions of active users while younger commercial platforms have had to invest tens of millions to match those user numbers. In the sense that AP is an anti-commercial, locked-open way to be social on the web, it has reached “protocol/market fit” and keeps growing.
In another sense, though, many of the improvised or contingent behaviors, control models, security models, and user experiences of 2018 persist into the web3 era, in large part because of a prisoner’s dilemma double-bind around interoperability across uncoordinated upgrades. It is not a “failed” standard in Cargill’s sense, but a somewhat ossified one, struggling to find coordination modes to advance. Our hypothesis is that conformance tooling reliable enough to be used as regression-testing CI would create those scalable, backwards-compatible paths forward sorely missing today.
What is the core idea or insight about potential improvement you want to pursue?
The tradition of credibly-neutral testing regimes for software in general is already somewhat thin and patchy, even in slow-moving industrial contexts and formal standards organizations; layering on decentralized governance and open, rather than instrumental, protocols ups the stakes and the scale of the problem. Our hypothesis is that conformance can counterweigh brute market force, which is the devil to which much decentralized protocol design and governance defaults since the market got hands.
What is your discovery methodology for investigating the current state of the target protocol? Eg: field observation, expert interviews, historical data analysis, failure event analysis
Our work on the STF grant has already put us in touch with a lot of the community, both on the standardization and community-support side at W3C (where @bengo was an active member of the original working group 2017-2019) and on the decentralized side with the Fediverse Enhancement Proposal process (FEP). This has also brought us into contact with other grant-funded entities doing related work, with whom we are already comparing notes.
Our focus in this research isn’t so much the refinement of the conformance regime as close study of how the community can participate in and co-evolve with it. For this reason, implementation timelines will be tracked and interviews focused on decision-making within codebases and sub-communities will be key to making an objective case study out of the technical work.
In what form will you prototype your improvement idea? Eg: Code, reference design implementation, draft proposal shared with experts for feedback, A/B test of ideas with a test audience, prototype hardware, etc.
Our goal is to continue optimizing our open source self-serve tooling for conformance testing and trace contributions from its users and the impact of that testing on governance and design of participating codebases. In this sense, our deliverables will just be more and bigger versions of the repositories we already have, discussions around them, and various kinds of documentation. Our success metric will be utility and kinds of adoption (into governance processes, into CI pipelines, into feedback loops with standardization).
How will you field-test your improvement idea? Eg: run a restricted pilot at an event, simulation, workshop, etc.
Since the prototype is already in early release and scheduled to be feature-complete before the grant period, we are blessed to be past prototype and pilot phase, focusing instead of general release and uptake, insofar as protocol tooling can be said to have a general public. We intend to socialize and interview users before, during and after the grant period.
Luckily there are already a number of online fora that we already participate in for doing outreach and interviews, including the decent. socialmedia conference we co-organized, the FediForum online unconference series, and other AP-heavy events like #DWeb Camp and FediCamp. We actually met at the first and last ActivityPub in-person conference in 2019.
Who will be able to judge the quality of your output? Ideally name a few suitable judges.
On the technical side, our work already has a community of reviewers and contributors in (and beyond) the testing task force of the Social CG at W3C. Primarily we are have been in dialogue with the following list of ActivityPub developers and hackers:
- Darius Kazemi (Digital Infrastructure Insights Fund)
- Evan Promodorou (also submitting an unrelated app to this CFP!)
- Johannes Ernst (NLNet, FediForum)
- @helge
- @mro
- @silverpill
On the governance and community side, we were hoping to get review of draft guidance materials and reports from interlocutors deeply experienced with the governance of open and decentralized non-commercial software communities. Luckily @bumblefudge just met a deep roster of such interlocutors at the recent Open Source Growing Pains workshop hosted by the Princeton Center for IT Policy. We would be particularly interested to compare notes on protocol conformance and governance with:
- Robin Berjon (IPFS Foundation, W3C)
- Silona Bonewald (Foundation for Public Code, IEEE SA Open, Linux Foundation, etc)
- Shauna Gordon-McKeon (Open Science Foundation, IFTAS.org)
- Erin Kissane (Digital Infrastructure Insights Fund, OpenNews)
- Tana Merk (Blockchain.eu, Metagov, Other Internet)
- @Chaals Neville (Consensys, Enterprise Ethereum Alliance, W3C)
- Joshua Tan (Metagov, DAOStar)
- Josh Simmons (Matrix Foundation, IFTAS.org)
How will you publish and evangelize your improvement idea? Eg: Submit proposal to a standards body, publish open-source code, produce and release a software development kit etc.
On the code side, we would like to not pre-commit to any particular relationship to standardization or community groups, but will distribute the tooling in an agile and multi-located way to ensure multiple channels of feedback. As mentioned above, it is already in early release.
On the deliverable side, we are open to input from the SoP interlocutors how best (with reasonable amounts of effort) to publish and promote the deliverables.
What is the success vision for your idea?
ActivityPub being governed as democratically and emergently as possible, with the protocol able to evolve and grow, and the open platforms relying on it maturing and stabilizing in a fair and credibly neutral way.
To put it more bluntly, the grant accelerating “democratic governance” would mean us retiring sooner as “activists” and organizers in the ActivityPub community; it would mean us carrying the lessons learned here to other protocols and communities.
Full-snack engineer with a specialization in protocol design and scaling data protocols, as well as distributed systems. Recently Protocol Labs/web3.storage, DFinity, distbin, LiveFyre. ↩︎
Standardization strategist, community janitor, and governanceor. Chain Agnostic Standards Alliance, IPFS Foundation, consulting for Wallet Connect. Recently: Decentralized Identity Foundation, Centre.io (Circle/Coinbase), Spruce Systems. ↩︎
For the unfamiliar, the ActivityPub protocol could be thought of as a data protocol for moving social data across distributed web topologies designed to make user data distributable and user experiences portable. To put it more ideologically, it was a reaction to the dominance of search, surveillance, and social as the three pillars of web2 extractive business models, designed specifically to guarantee a Commons for the social web’s data. The most common platforms at time of writing that interfederate and interoperate are the feed-based social media engines (largely powered by Mastodon and Miss/key servers), and the forum-based software on the Reddit or Usenet models (most prominently Lemmy and kbin). On the horizon, web-publishing giants like Meta’s Threads, Discourse (on which we are having this conversation!) and WordPress are “incrementally federating,” i.e. turning on data portability and user interactions one feature or data type at a time. ↩︎