#ActivityPub has a lot of the same characteristics as email. But in email, the duties of each part of the process are split up, and you can mix-and-match software. Fediverse software is more tightly coupled than that.
SMTP is like the ActivityPub server-to-server protocol. Like in email with sendmail/exim/postfix/etc, you could have a program that does just this.
IMAP is like the server-to-client protocol. Like in email, with courier/dovecot/etc, you could have a program that does just this.
One thing the fediverse DOES have is multiple client programs. Like with Thunderbird/Roundcube/K-9 Mail, you can use a few different fediverse client apps, or even a couple that run on the web, like what's that one, Elk?
But a bunch of them, the "user-agents" are tied to the backend. Like, you can't use Mastodon's client with a Firefish server. I think it'd be better for the ecosystem if the clients were split from the servers, and the servers were split into S2S and S2C.
egg_irl
"I'm not #trans, I just want to look good. And as a 100% heterosexual man, the only thing that looks good to me is a woman, so that is how I must look. Why don't I make myself into a good-looking guy? How would I, a 100% heterosexual man, know what one of those looks like??"