Explore publishing data to pub/sub node

It might be interesting to look into exposing Willow's project data over pub/sub. When it fetches releases and notices that there are new ones, it could publish those versions and notes to a pub/sub node. Anyone subscribed to the project topic immediately sees the new releases.

I do like the idea of building all of Willow's features directly into the binary and not relying on external services. That would mean building XMPP-compatible pub/sub directly into Willow. It might also be good to allow Willow to run as a component in existing XMPP servers like ejabberd or Prosody. Willow could then be configured to publish releases through e.g. Prosody.

Assigned to
3 months ago
3 months ago
backend backlog enhancement frontend

~amolith 3 months ago*

Briefly discussing with someone who knows much more about XMPP and pub/sub than I indicates that building the functionality in directly would basically require a full XMPP server. I'd rather not reimplement all that inside Willow when perfectly suitable and simple options already exist (namely Prosody). Additionally, someone interested in using Willow through XMPP probably already has a server, and it makes more sense to just hook into that.

Building the feature as a server component or a client that publishes to an existing component is likely a better approach.

~amolith 3 months ago

Certwatch (also in Go) publishes notices over pub/sub and it's implemented as a Prosody component client. It does use Prosody-specific features, but avoiding those shouldn't be hard.

~amolith 3 months ago

Maybe look at detecting whether the component is Prosody, and if so, taking advantage of its extra features. Base functionality is just a XEP-0060 publish.

Register here or Log in to comment, or comment via email.