Milestone: Multiprotocol Handler

March 30, 2022 — GNU social development team

In GNU social version 2 this was accomplished by using a module named TheFreeNetwork that would act as a mediator in specific operations concerning the federation plugins.

In version 3 this was simplified around the Notification component, which asks the FreeNetwork component to procedurally call the handlers in the protocol handlers. Although this works via events, we are modelling a service behaviour here.

The remote notification queue is also handled by the Notification component. TheFreeNetwork component became devoted to handling WebFinger-related matters, it's involvement in this is just defining sequence, helpers and setting the API for the various protocol plugins:

There are also other methods that the FreeNetwork component makes available for plugins, but are meant for WebFinger-related helpers such as onFreeNetworkFoundXrd and FreeNetworkActorProtocol::canIAddr.