API
BackendAn agreed set of messages two systems exchange.
The contract between two pieces of software: which requests are valid, and what shape the answers take. Both sides can be rewritten freely as long as the contract holds, which is what makes independent teams possible.
See also Endpoint, Contract, REST
GraphQL
BackendAn API style where the client states what it wants.
One endpoint that accepts a description of the desired data. Fills a rich screen in one round trip with no unused fields, at the cost of much harder caching and rate limiting.
See also REST, RPC, API
Non-deterministic
AI in the stackThe same input can produce different output.
True of language models and untrue of most other APIs. Means tests cannot assert on exact strings, and that a bug may not reproduce on demand.
See also Hallucination, Streaming
REST
BackendAn API style organised around things.
Endpoints named after resources (/users, /orders) with HTTP verbs saying what to do to them. Highly cacheable and easy to inspect. A rich screen may need several calls.
See also GraphQL, RPC, Endpoint
RPC
BackendCalling a named function on another machine.
An API style where you invoke an action directly rather than modelling resources. With shared types, a contract break becomes a build error, which is why it suits an app talking to its own backend.
See also Server function, REST, API
Secret
BackendAny value that grants access.
A database password, an API key, a signing key. Never in code, never in a client bundle. If one leaks, revoke it first. Deleting the line comes second, and git history keeps it regardless.
See also Environment variable, Key rotation
Server state
FrontendData fetched from an API, held in the UI.
Not really your application’s state, but a cache of somebody else’s, which goes stale the moment anyone else changes it. Treating it as local state is what produces "I updated it but the list still shows the old value".
See also State, Cache
Versioning
BackendRunning old and new API shapes side by side.
Offering /v1 and /v2 so existing callers keep working while new ones use the new shape. The same expand-then-contract idea as a safe schema migration, applied to an API.
See also Breaking change, Deprecation