I wonder how a cross server or a cross federation search could be implemented. Let’s take an example: imagine a reddit-like federated app. When the user search for a community (in a text search input for instance), it would be great if the results communities would be both the communities on the current server and the communities on the other federated servers.
Concerning the implementation, I see 2 possible implementations:
A centralised implementation. In this case, in addition to the reddit-like federated servers, there will be something like a “common registry”. If we assume that each community is designed by an ActivityPub actor, then the registry would just “record” the association between the community name and the actor URL. However, this solution come with some drawbacks. The first one is that a centralised solution is antonym to a federated solution (this is specifically what we want to avoid). What’s more, some server administrator who don’t want to join the registry could always create alternate registries and that lead to registries fragmentation. If registries are fragmented, they become useless.
A decentralised solution. I imagine this solution much more like a web search engine (google for instance) but whose goal is to find ActivityPub actors. The search engine just crawl the federated servers and records the actors URL. This sounds like a good solution but I don’t know how it can be implemented. How can the search engine find the federated servers ? How can the search engine find the actors on the servers ? We can imagine a lot of solutions, for instance having a sitemap-like which references the actors on a server, etc… But the best thing would be to have a specification that describes exactly what to do !
Then my question… are there already some existing implementation/trial/research/specification on this subject ? What kind of implementation would be the best one for you ?
Thanks for reading.