Thank you @koehn for this really clear introduction to the advantages and challenges of using NoSQL solutions to develop ActivityPub services. I especially like the idea that your server can fetch any activity from any version of any server implementation and just work with it. That’s indeed a good starting point to work with the data.
I’d be interested if you like, in comparing the trade-offs with @mayel’s approach of sticking to Postgres, but I don’t want it to become a SQL vs. NoSQL argument. I guess both approaches have advantages and caveats, depending on what you want to do with the data.
Finally I guess going through the challenges you mentioned would make an interesting follow-up discussion across the community:
- ActivityPub replication/federation/delivery strategies are poorly defined
- ActivityPub specification flexibility makes interoperability challenging (but maybe that’s why we need coordination and the collective)
- Type libraries are critically important (to which I’d like to propose a Mammoth category in #software to fill the gap for NodeJS)