Glossary
Every term here is explained in a few plain sentences. In articles, the first mention of a term shows this definition when you point at it or tap it.
- API (Application Programming Interface)
A contract that lets one program use another program. An API says which requests a program accepts and what it returns. In system design, it usually means the network endpoints that clients and other services call.
Read more: Wikipedia: API
- CDN (Content Delivery Network)
A network of servers around the world that cache content close to users. A CDN cuts latency for users and load on your servers. It suits static files and responses that many users read.
Read more: Networking: Users far away
- Circuit breaker
A guard that stops calls to a failing dependency for a while and fails fast instead. It has three states: closed (calls pass), open (calls fail fast), and half-open (a few test calls). It keeps one failure from spreading.
Read more: Networking: When a call fails
- Client-server
A model of interaction in which a client requests work or data from a server. The server handles the request and returns a response. Client and server are roles: the same component can serve one caller and make requests to another component.
Read more: Networking: The app talks to the server
- Connection pool
A set of open connections that a client keeps and reuses. Opening a connection is slow, so services keep a pool of them to databases and other services. The pool size also limits how much load one client can put on a server.
Read more: Networking: Securing the connection
- Consistency
The rules for which version of data a read may return. With strong consistency, a read sees the latest completed write. Weaker consistency allows older data, which needs less coordination between copies and makes reads faster.
Read more: Wikipedia: Consistency model
- Deadline
The latest time by which a whole request must finish. Each service passes the remaining time to the services it calls, so they can stop work that is no longer needed.
Read more: Networking: When a call fails
- DNS (Domain Name System)
The system that turns a domain name into an IP address. Before a client can connect to example.com, it asks DNS for the address. Answers are cached for the time set by their TTL. DNS can also spread users across servers or regions by returning different addresses.
Read more: Networking: Finding the server
- Exponential backoff
Waiting longer after each failed try, for example 100 ms, 200 ms, 400 ms. It gives a struggling service time to recover. Combine it with jitter and a cap on tries.
Read more: Networking: When a call fails
- GeoDNS
DNS that answers with different addresses depending on where the client is. It picks a region from an estimate of where the user is. Cached answers delay a change until they expire, and open connections must reconnect.
Read more: Networking: Users far away
- GraphQL
An API style where the client sends a query that names exactly the fields it needs. There is usually one endpoint, and the response has the shape of the query. It avoids over-fetching and many round trips, but caching and rate limiting are harder.
Read more: graphql.org: Learn GraphQL
- gRPC
A framework for calling functions on another service, with binary messages over HTTP/2. You describe the calls in a .proto file and generate client and server code from it. Messages are small and fast to parse. It is common for service-to-service calls, but browsers cannot call it directly.
Read more: grpc.io: Introduction to gRPC
- Health check
A regular probe that tells whether a server can take traffic. Load balancers remove servers that fail several checks in a row and add them back after several successes.
Read more: Networking: Adding servers
- HTTP (Hypertext Transfer Protocol)
The request-response protocol of the web. A client sends a request with a method (GET, POST, …), a path, and headers. The server sends back a status code, headers, and a body. Most public APIs run on HTTP.
Read more: Networking: Agreeing on the format
- HTTP/2
A newer version of HTTP that sends many requests over one connection at the same time. HTTP/2 splits requests into streams on one TCP connection and compresses headers. A lost TCP packet still stops all streams until it is resent.
Read more: Networking: Agreeing on the format
- HTTP/3
The version of HTTP that runs on QUIC instead of TCP. HTTP/3 keeps the many-streams model of HTTP/2, but a lost packet holds up only the streams whose data it carried. It also sets up connections faster.
Read more: Networking: Agreeing on the format
- HTTPS (HTTP Secure)
HTTP sent over an encrypted TLS connection. HTTPS is the same HTTP, but TLS encrypts it and proves the server is who it claims to be. Today almost all web traffic uses HTTPS.
Read more: Networking: Agreeing on the format
- Idempotency key
A unique ID the client attaches to a request, so the server can recognize a retry of it. If the same key comes again, the server returns the saved result instead of doing the work twice. Used for payments and orders.
Read more: Networking: When a call fails
- IP address (Internet Protocol address)
The number that identifies a device on a network. IP, the Internet Protocol, delivers packets to these addresses with no guarantees; TCP and UDP run on top of it. DNS maps names to IP addresses.
Read more: Networking: Finding the server
- Jitter
A random extra wait added before a retry. Without jitter, many clients retry at the same moment and overload the service again.
Read more: Networking: When a call fails
- Keep-alive
Keeping a connection open after a response, so the next request can reuse it. Reusing a connection skips the TCP and TLS handshakes. Clients and servers close idle connections after a timeout.
Read more: Networking: Securing the connection
- L4 / L7
Network layers: L4 is the transport layer (TCP, UDP), L7 is the application layer (HTTP). An L4 load balancer routes connections. An L7 load balancer reads each HTTP request and can route by path or header.
Read more: Networking: Adding servers
- Least connections
Sending each new connection to the server with the fewest open connections. Good for long-lived connections, where the number of open connections shows the load better than the number of requests.
Read more: Networking: Spreading the load
- Load balancer
A component that spreads incoming traffic across several servers. It also stops sending traffic to servers that fail health checks, so clients see one stable address.
Read more: Networking: Adding servers
- Long polling
The server holds a request open until it has new data or a timeout, then the client asks again. Long polling gives near real-time updates over plain HTTP, without new infrastructure.
Read more: Networking: Pushing new messages
- mTLS (Mutual TLS)
TLS in which both sides show a certificate. Each side proves who it is to the other, so only known services can connect. It is common for traffic between internal services.
Read more: Networking: Securing the connection
- OSI model (Open Systems Interconnection model)
A model that divides network communication into seven layers. Each layer describes a different part of communication. The layer numbers help distinguish addressing (L3), transport (L4), and application messages (L7) when discussing protocols and load balancers.
Read more: Networking: Adding servers
- Polling
The client asks the server for new data again and again on a timer. Polling is simple and works everywhere. The cost is delay (up to one interval) and many empty requests.
Read more: Networking: Pushing new messages
- Port
A number that identifies a program on a machine, so one IP address can serve many programs. A connection goes to an IP address and a port, for example port 443 for HTTPS. L4 load balancers route traffic by IP address and port.
Read more: Networking: Finding the server
- QUIC
A transport protocol on top of UDP that gives reliable streams with built-in encryption. QUIC does what TCP and TLS do together, but each stream recovers from loss on its own. HTTP/3 runs on QUIC.
Read more: Wikipedia: QUIC
- Rate limit
A cap on how many requests a client may send in a period of time. Rate limits protect a service from overload and abuse. Requests over the limit usually get HTTP 429.
Read more: Networking: When a call fails
- REST (Representational State Transfer)
An API style built on resources (URLs) and standard HTTP methods. Each thing is a resource with a URL, such as /orders/42. Clients read and change it with GET, POST, PUT, and DELETE. REST is the default style for public APIs.
Read more: MDN: REST
- Round robin
Sending each new request to the next server in turn. Round robin is simple and works well when requests cost about the same.
Read more: Networking: Spreading the load
- Round trip
The time for a message to reach the other side and for the answer to come back. Also called RTT (round-trip time). Every handshake costs at least one round trip, so distance between client and server adds up fast.
Read more: MDN: Round trip time
- Service discovery
A way for services to find the current addresses of other services. Instances register themselves, and clients ask the registry for healthy instances. A load balancer or the client itself uses it to pick a live instance.
Read more: Networking: Finding the server
- Signaling
Exchanging connection details between two peers before they connect directly. WebRTC does not define how signaling works. Apps usually send it through a server they already have, for example over WebSocket.
Read more: Networking: Pushing new messages
- Single point of failure
A part whose failure stops the whole system. Remove it by running more than one copy and switching to a healthy one automatically.
Read more: Wikipedia: Single point of failure
- SSE (Server-Sent Events)
A long HTTP response through which the server streams text events to the client. Browsers reconnect by themselves and send the ID of the last event, if the server sets IDs. SSE sends data only from server to client.
Read more: Networking: Pushing new messages
- Stateless
Keeping no user data on the server between requests. Each request carries what the server needs, and user data lives in a shared store. Any server can then handle any request, which makes scaling and failures simpler.
Read more: Networking: Servers with state
- Sticky sessions
Sending all requests from one client to the same server. It keeps server-local state usable, but makes failover and rebalancing harder.
Read more: Networking: Servers with state
- TCP (Transmission Control Protocol)
A transport protocol that delivers a reliable, ordered stream of bytes over a connection. TCP opens a connection with a handshake, numbers every byte, and resends what gets lost. This makes it reliable, but a lost packet delays all data after it. HTTP/1.1, HTTP/2, and most databases run on TCP.
Read more: Networking: Delivering data
- TLS (Transport Layer Security)
The protocol that encrypts a connection and proves the server is who it claims to be. During the TLS handshake, the client checks the server certificate and both sides agree on keys. After that, all data is encrypted. HTTPS is HTTP over TLS.
Read more: Networking: Securing the connection
- TTL (Time To Live)
How long a piece of data stays valid before it must be refreshed or dropped. Caches and DNS answers use a TTL to limit how long stored data can be reused. A short TTL means fresher data but more refreshes. A long TTL means fewer refreshes, but changes spread more slowly.
Read more: Wikipedia: Time to live
- TURN (Traversal Using Relays around NAT)
A relay server that forwards traffic between peers when they cannot connect directly. TURN relays media when a direct connection is not possible. All media then goes through the relay, so it needs enough bandwidth.
Read more: Networking: Pushing new messages
- UDP (User Datagram Protocol)
A transport protocol that sends separate messages with no delivery or order guarantees. UDP has no connection and no resends, so it adds very little delay. The application must handle loss and order itself if it cares. Live audio, video, games, and QUIC use UDP.
Read more: Networking: Delivering data
- WebRTC (Web Real-Time Communication)
A technology for direct peer-to-peer audio, video, and data in browsers and mobile apps. Peers connect to each other over UDP when they can. A signaling server, STUN, and TURN help them find each other through NAT.
Read more: Networking: Pushing new messages
- WebSocket
A long-lived connection where client and server can both send messages at any time. It starts as an HTTP request and then upgrades to a two-way channel on the same TCP connection. Used for chat, collaboration, and games.
Read more: Networking: Pushing new messages
- Weighted round robin
Round robin that sends more requests to servers with a higher weight. Weights follow server capacity, so a server twice as big gets twice the traffic.
Read more: Networking: Spreading the load