Exploring a Hybrid Protocol Stack: Solid + AT Protocol + ActivityPub

I’m exploring an experimental architecture that combines components from different decentralized protocols, and I’d love to get your thoughts and learn from anyone who might have attempted something similar.

The core idea is to build a decentralized storage and networking solution with these components:

  1. Solid’s Pod architecture as the foundation for personal data storage and access control
  2. AT Protocol’s DID-based identity system for user identification
  3. ActivityPub’s federation capabilities for cross-node networking and communication
  • Has anyone attempted to integrate AT Protocol’s DID system with Solid Pods? What challenges did you face?

  • Are there any fundamental incompatibilities between these protocols that I should be aware of?

  • How would you approach the authentication flow when combining Solid’s WebID-OIDC with AT Protocol’s identity system?

Please provide your insights on successful integration patterns, architectural pitfalls to avoid, maintaining interoperability, and performance implications when combining these protocols.

3 Likes

For Solid + ActivityPub, there is already interesting work being done by the folks working on ActivityPods; I suggest you reach out to them using the links provided on their website.

DIDs are a W3C standard that have a life of their own outside of AT. There have been many conversations around supporting DIDs in addition to WebIds; but I don’t know how much work has been made in this direction.

Indeed, I personally believe that there would be benefit to having a shared specification for authentication across many of these specs; and would help move towards the Solid vision of “Global Single Sign on”.

May I ask, in what context are you doing this experimental development (research, industry, hobby, …) and where are you hoping to take it.

1 Like

I think one thing holding the integration back is someone attempting to create an OIDC providing service which handles all of the scopes. Solid has the “webid” scope, and probably more in the future. The AT protocol has some custom OAuth2 scoping. DIDs I have less familiarity with but they would probably need some custom logic as well.

Thanks for sharing those useful resources about ActivityPods and DIDs! I’ll definitely dive into the links and see what the ActivityPods team has been working on.

To give you some context: I’m starting this as a side research project, but it’s linked to a growing professional interest. In my work, I’ve noticed a rising interest in decentralized systems, especially from healthcare and education companies. I explored Solid before, but that effort lost momentum. However, the current excitement around the AT Protocol and ActivityPub has reignited my interest.

Thought to travel this route and see where it takes me .

Thanks for the pointers.
I hadn’t fully considered all the complexities involved.

1 Like

Hi,

I think it’s a great idea, fortunately there’s a lot to build on top of. As Jesse shared there’s ActivityPods. I would build upon that.
Here’s a working example of mapping WebIDs to DIDs:

the server is over at GitHub - interop-alliance/life-server: A decentralized personal data framework inspired by MIT's Solid Project
the DID-specific code is basically at life-server/src/accounts/dids.js at main · interop-alliance/life-server · GitHub
so when an account is created, a did:web DID is generated (with the keypair etc)

Someone discussed ActivityPub over ATProto that you may find interesting ActivityPub Over ATProto

The ActivityPods devs have expressed supporting ATProto so if it’s something you’re looking to do I’m sure they’d appreciate it as it would speed up their timeline. They have a Matrix space You're invited to talk on Matrix

1 Like