I have been tasked writing a "fire-and-forget" push web application, that can push high-volume XML messages (of several types) to multiple client endpoints over the internet (HTTPS). I don't need a response, or even to know if they've received the message or not - I don't want it to fail at my end if the message doesn't arrive.
In other words, given a url (e.g. https://192.168.3.45/MessageTypeA/v1, https://192.168.3.45/MessageTypeB/v3, etc.), my application should forward a copy of all XML messages of a given type to that url, and if a client is listening at that url then it can do what it likes with those messages.
I can define how the client urls are defined, security, etc - there's nothing already existing and so I'm not limited by an existing approach.
I am fairly new to web-based apis. I have been looking into REST, SOAP, WebSub...; and trying to find out what is the best approach for this.
REST-based APIs, it seems to me, act on objects at the receiving end - "GET" the list of trains, or "PUT" an update to the driver, or "POST" a new train, or whatever; which isn't relevant for me here - I guess all I would want in this approach is "POST" an new message of type x, y or z? The point is that the xml message when interpreted may well be a POST or a PUT, but I don't want to be pre-processing the messages to decide that - all I'm doing is providing the endpoint with raw data.
In WebSub language, I think I'm the "publisher" and I'm publishing to multiple "Hubs"? But the difference is there's no subscriber in my scenario - I maintain the list of targets per message type, rather than them subscribing.
So I don't really know which protocol/approach is best for this kind of scenario, and so am looking for some advice. Whichever protocol I use needs to allow for encryption on the message and authentication by the receiving client, to ensure it's me sending them messages.