protocol
This article is a stub. You can help the IndieWeb wiki by expanding it.
protocols on the IndieWeb, such as Webmention, IndieAuth, Micropub, WebSub, and Microsub are standard ways for sites & services to interact with each other and user interfaces on the web or native apps, though sometimes errantly used by some technologists to refer to any kind of even proposed standard, format, or API, and in other contexts may refer to a series of steps to follow, such as a script, checklist, or recipe.
See specifications for a list of protocols that are in wide use on the IndieWeb.
Brainstorming
Efficiency and social context
Tantek noted some trends in protocol design in an informal stream of consciousness chat (late night PDT rant 2021-06-28). Editing for readability, some implied bits made more explicit, and some tone (in progress)
IRC is of the same era as SMTP, where those designing / architecting inventing it presumed good will by participants, due to unawareness by the inventors of swimming in their highly privileged waters.
Sure they (IRC inventors/implementers) tried to patch it after the fact with various *SERVs, human moderators etc. but it was all to patch architectural designs based on flawed assumptions of human nature.
However by virtue of being of that era, IRC/SMTP were also of the modem era, where every byte counted, and thus when the protocols "worked" (were used by good faith human actors), they were EXTREMELY efficient/fast and reliable, at least at a byte level, because they were designed to work / recover over bad / slow / unreliable network connections.
My earliest memories of XMPP were with just how slooooooooow its implementations were to do basic things like connect, log on, latency of message sending/receiving. Nevermind complete lack of basic interop (images, file transfers etc., even SMTP got those right).
Matrix (by way of its clients) is even slooooooooooooower. I tried keeping a tab open to a Matrix server with many channels and gave up after it would leak memory worse than any other web application, and was perhaps the most inefficient use of JS to move around a bunch of small bits of text that I've ever seen.
There really is no excuse for making sending small bits of text back/forth that slow. I don't even want to know the overhead %, nay, multiplier that Matrix has for sending a sentence of text.
For modern protocols, we need a combination of modern knowledge of just how bad humans are by default in social systems (power asymmetries, trolls etc.) and folks that have experience designing (and implementing!) protocols that very efficiently (with low-latency) send small bits of text back/forth.
One more thing, not only do we not have folks that have experience (and desire to keep) designing very (byte for byte) efficient protocols, we have the COMPLETE OPPOSITE.
A bunch of folks are malincentivized by their ICOs to design VERY INEFFICIENT protocols that burn ridiculous amounts of power & time to perform operations. This is the worst of both worlds, the cryptocurrency/blockchain advocates appear to act in ways and make proposals that show complete ignorance & neglect of anyone's safety but their own cryptocurrency accounts (and even those are also compromised due to misuse of SMS).
FAQ
See: format#FAQ for format vs protocol questions.
See Also
- building blocks
- formats
- social standards
- Broader context usage as a series of steps to follow, typically initiated by a verbal command or some other event trigger: https://marvelcinematicuniverse.fandom.com/wiki/Category:Protocols
- Example technologist misuse, "block protocol", see criticism at https://chat.indieweb.org/microformats/2022-01-30#t1643503623715400 and following chats.
- "not sure of the right term, but the block protocol doesn't seem to have "governance" for the schema behind blocks. like it's either very prescriptive (e.g. the "person has a firstName" thing that tantek mentioned) or it's very do-whatever-you-want, since it seems like anyone can publish any kind of block." @[schmarty] January 30, 2022