@mossfet activity pub requires that every single data object (json object) or "activity", like a post or a boost or a like, requires an ID property, and realistically the ID property must be a single https URL.
I can understand why it's like this. It makes activity pub much easier to implement and similar to " the web " in general.
But it also makes activity pub servers especially precarious. They're harder to maintain, harder to cooperate on, easier to censor, and their users must accept more risk.
As a contrasting example, Matrix has a concept of a room which is very central to everything that it does. The room ID may specify a specific home server domain name, but even if that home server disappears forever, the room can still live on other home servers and all of the authentication and authorization mechanisms continue to work. The same is not true on activity pub. If your servers domain name is seized by ice or fails to be renewed because somebody's credit card got rejected, then you are SOL.
@mossfet I don't immediately have an alternative implementation to offer, But this is something that has bugged me about activity pub after looking at how it works under the hood.