Skip to content

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