Rest Won And Thats Why Were Stuck
[STUB]- Planted
- 2026-07-07
- Tended
- 2026-07-07
- State
- [STUB]
- Topics
- topic/engineering
- Links out
- 3
REST won, and that’s why we’re stuck
REST won so completely that we forgot it is a set of opinions about resource shape, not a wire protocol. Everything since — gRPC, GraphQL, MCP — inherits HTTP’s constraints without examining them. Protocol design should begin with “what is the relationship between these two parties?”, not with “which HTTP verbs can I overload?”
Parent discussions
- Agent-Editor Protocol — the protocol that raised this question
Connected concepts
- Delegation is not collaboration — request/response is delegation’s wire format; a collaboration protocol needs peers
- Proceduralism as Hidden Sovereignty — REST is proceduralism for APIs: a totalizing “neutral” framework that removes its own assumptions from the space of things that can be questioned
Key insight
REST’s opinions were right for their moment: the world is nouns; interactions are stateless; a uniform interface beats a rich one. For documents circa 2000, correct on all counts. But the win was so total the opinions became invisible, and now every dissent ships wearing HTTP as a costume. GraphQL rejects REST’s resource shape and delivers the rebellion as a POST to /graphql. gRPC wants RPC semantics and tunnels them through HTTP/2 frames. MCP bolts the long-lived, stateful, bidirectional relationships agents actually need onto JSON-RPC as an afterthought. In each case the designers asked “how do I express my semantics over HTTP?” when the prior question — does this relationship even have a client and a server? — went unasked.
The Agent-Editor Protocol in the vault is an interesting case because its relationship is not client-server. The agent and editor are peers; either may speak first. Request/response would have made the editor a servant that only speaks when spoken to. So newline-delimited JSON over a raw TCP socket, messages rather than endpoints. An open question: the V0 spec has the MCP server doing a blocking wait for the editor’s answer — does that reimport request/response in miniature, even after escaping HTTP?
Open question
Is MCP going to re-freeze the design space for another twenty years the way REST did?
Referenced by
notes that reference this one
Needs
dead links from this note that are not yet planted
- Agent-Editor Protocol
- Proceduralism as Hidden Sovereignty