Beyond REST and GraphQL.
WHAT REMOTE PROCEDURE APPROACHES PROVIDE
Calling a function on another machine, with defined types.
WHAT THE MODERN FORM USES
A compact binary format, over a persistent connection.
WHAT IT PROVIDES
Speed Generated client code Streaming in both directions
WHERE IT SUITS
Communication between your own services.
WHERE IT DOES NOT
Public interfaces, and browsers without a proxy.
WHAT THE OLDER ENTERPRISE STYLE USED
Verbose structured documents with formal contracts.
WHERE IT PERSISTS
Banking, government and established enterprise systems.
WHAT THAT MEANS PRACTICALLY
You will meet it, and the tooling is heavier.
WHAT WEBSOCKETS PROVIDE
A persistent two-way connection.
WHERE THAT SUITS
Live updates, chat, and anything continuous.
WHAT THEY COST
Connection state, and scaling complexity.
WHAT SERVER-SENT EVENTS PROVIDE
One-way streaming from server to client, over ordinary connections.
WHY THAT IS FREQUENTLY ENOUGH
Most live updates flow one way.
WHAT MESSAGE QUEUES PROVIDE
Asynchronous delivery, with buffering and retry.
WHERE THEY SUIT
Work that need not happen immediately Systems that must not block each other
WHAT TO CHOOSE
The simplest that meets the requirement.