It would be useful to have an actual way to decommission servers. In theory, servers can leave all rooms and be done with it, but that is non-trivial and in practice servers will get federation requests for basically forever.
A possible measure would be a specific value in the SRV record, or a HTTP response that tells other servers that this server no longer participates in the federation and shouldn't be pinged again.
(kind of related to #3286, but for federation traffic instead of client traffic)
Maybe returning a HTTP 410 ("Gone") at all /_matrix/ endpoints?
@hrefhref I feel like a DNS entry would be preferable as it would help avoid unnecessary requests to the server.
I would suggest something like
example.com. 1 IN TXT "v=matrix;gone"
where example.com is the actual domain that was used for the homeserver.
There is already a SRV record that needs to be resolved, might as well just define the semantics of some domain to mean it's decommissioned. The .invalid TLD seems well suited for the job. This boils down the actual logic in the HS to "if SRV resolves to *.invalid, don't bother querying but maybe recheck the record at a later point".
Bonus points if e.g. joining a room or sending a message in a 1on1 to a user on such a server gives a specialized error.
That is a pretty good idea, but we also need to think about when it would be time to forget a homeserver.
I would suggest "forgetting" a server 30 days after the SRV record points to something.invalid.
Not a fan of requiring a tombstone to ward off evil spirits.
It would be great if we could come up with a positive way to know that a matrix server is up and running. One of the easiest ways would be to require a valid SRV for federation, but there has to be a better way than that.
@ara4n commented:
<@freenode_andi-:matrix.org> So I intend to stop running my matrix homeserver for farious reasons. Is there a way to tell other servers that mine is gone and they do not have to retry forever?
if the farious reasons relate to history retention, be aware that msc1763 is trying to fix this
What if a server has left one federation and joined another? How does a change to the DNS record help that?
Most helpful comment
@hrefhref I feel like a DNS entry would be preferable as it would help avoid unnecessary requests to the server.