Глоссарий

Словарь терминологии System Design — 45 терминов System Design

API Gateway

Architecture

Единая точка входа, маршрутизирующая запросы к микросервисам.

Reverse proxy перед сервисами. Маршрутизация, аутентификация, rate limiting, SSL termination, request aggregation.

KongAWS API GatewayNginxTraefikEnvoy

Load Balancer

Architecture

Распределяет входящий трафик между серверами.

Алгоритмы: Round Robin, Least Connections, IP Hash, Weighted. L4 (TCP) vs L7 (HTTP). Health checks отключают нездоровые ноды.

NginxHAProxyAWS ALB/NLB

Rate Limiting

Patterns

Ограничение количества запросов для защиты от перегрузки.

Алгоритмы: Token Bucket (burst), Leaky Bucket (constant rate), Sliding Window. Реализуется на уровне Gateway или middleware.

Redis + LuaAWS WAFCloudflare

Circuit Breaker

Patterns

Паттерн предотвращающий каскадные сбои.

Три состояния: CLOSED (норма), OPEN (fail fast), HALF-OPEN (тест). При превышении порога ошибок — разрывает цепь.

Resilience4jPollyHystrix

Caching (Кэширование)

Architecture

Хранение часто запрашиваемых данных в быстром хранилище.

Стратегии: Cache-Aside, Write-Through, Write-Behind. Инвалидация: TTL, event-driven, versioning. Cache stampede — главная опасность.

RedisMemcachedVarnishCDN

JWT (JSON Web Token)

Auth

Компактный токен для передачи claims между сторонами.

Self-contained: header.payload.signature. Stateless аутентификация. Подпись HMAC или RSA. Нельзя отозвать до истечения — short-lived + refresh.

Auth0Firebase AuthKeycloak

Message Queue

Architecture

Асинхронная коммуникация через очередь сообщений.

Decouples producer/consumer. Гарантирует доставку. Point-to-Point vs Pub/Sub. Dead Letter Queue для необработанных.

KafkaRabbitMQSQSRedis Streams

Sharding (Шардирование)

Database

Горизонтальное разделение данных между несколькими БД.

Hash-based (consistent hashing), Range-based, Directory-based. Решает предел одного сервера. Сложности: cross-shard queries, rebalancing.

MongoDB shardingVitessCockroachDB

RPS (Requests Per Second)

Metrics

Количество запросов в секунду — ключевая метрика нагрузки.

Определяет мощность системы. 100 RPS — маленький сервис, 10K — средний, 100K+ — high-load. Зависит от CPU, IO, network. Peak RPS обычно 3-5x от average.

Apache Benchmark (ab)wrkk6Locust

DAU (Daily Active Users)

Metrics

Количество уникальных пользователей в день.

Ключевая бизнес-метрика. Из DAU рассчитывают RPS: DAU × действий/user / 86400. Peak factor 2-5x. MAU/DAU ratio показывает engagement (30%+ = хорошо).

WhatsApp: 2B DAUInstagram: 500M DAUTwitter: 250M DAU

SLA (Service Level Agreement)

Metrics

Гарантия доступности сервиса в процентах.

99.9% = 8.7 часов downtime/год. 99.99% = 52 мин/год. 99.999% = 5 мин/год. SLO — цель, SLI — измерение, SLA — контракт. Error budget = 100% - SLO.

AWS S3: 99.99%Google Cloud: 99.95%Stripe: 99.99%

Latency (Задержка)

Metrics

Время от отправки запроса до получения ответа.

Измеряется в percentiles: p50 (медиана), p95, p99. p99 < 100ms — быстрый сервис. Источники: network, serialization, processing, DB query. Tail latency (p99.9) часто в 10x от p50.

Redis: <1msPostgreSQL query: 1-50msHTTP API: 50-500ms

Throughput (Пропускная способность)

Metrics

Количество операций, обрабатываемых за единицу времени.

RPS для API, QPS для БД, MB/s для сети. Throughput × Latency = Concurrency (Little's Law). Bottleneck определяет max throughput всей системы.

Kafka: 1M msg/sRedis: 100K ops/sPostgreSQL: 10K QPS

CDN (Content Delivery Network)

Architecture

Сеть серверов для кэширования контента ближе к пользователю.

PoP (Point of Presence) по всему миру. Push CDN (загружаешь сам) vs Pull CDN (кэширует при первом запросе). Cache invalidation — основная сложность.

CloudFrontCloudflareAkamaiFastly

DNS (Domain Name System)

Networking

Преобразует доменное имя в IP-адрес.

Цепочка: browser cache → OS → recursive resolver → root → TLD → authoritative. TTL определяет кэширование. GeoDNS для multi-region routing.

Route 53Cloudflare DNSGoogle DNS 8.8.8.8

TCP vs UDP

Networking

TCP — надёжная доставка, UDP — быстрая без гарантий.

TCP: 3-way handshake, ordering, retransmission, flow control. UDP: нет соединения, нет гарантий, минимальный overhead. TCP для HTTP/DB, UDP для видео/игр/DNS.

TCP: HTTP, PostgreSQL, SSHUDP: DNS, gaming, video streaming

HTTP/1.1 vs HTTP/2 vs HTTP/3

Networking

Эволюция протокола: от текстового до мультиплексного.

HTTP/1.1: текстовый, одно соединение = один запрос. HTTP/2: бинарный, мультиплексинг, server push, header compression. HTTP/3: QUIC (UDP), 0-RTT, нет head-of-line blocking.

HTTP/2: все современные сайтыHTTP/3: Google, CloudflaregRPC: HTTP/2

REST vs gRPC

Networking

REST — текстовый JSON/HTTP, gRPC — бинарный Protobuf/HTTP2.

REST: простой, human-readable, широкая поддержка. gRPC: 10x компактнее, мультиплексинг, code-gen, streaming. REST для public API, gRPC для internal microservices.

REST: Stripe API, GitHub APIgRPC: Google Cloud, Envoy

WebSocket

Networking

Постоянное bidirectional соединение между клиентом и сервером.

Full-duplex после HTTP upgrade handshake. Низкий overhead (2 байта frame). Проблемы: sticky sessions за LB, reconnection logic, масштабирование через pub/sub.

Socket.IOws (Node.js)DiscordSlack

CAP Theorem

Theory

В distributed системе можно гарантировать только 2 из 3: C, A, P.

Consistency — все читают одинаковые данные. Availability — каждый запрос получает ответ. Partition tolerance — система работает при network split. P обязателен → выбор CP или AP.

CP: PostgreSQL, MongoDBAP: Cassandra, DynamoDB

ACID

Database

Гарантии транзакций: Atomicity, Consistency, Isolation, Durability.

Atomicity: всё или ничего. Consistency: валидные состояния. Isolation: параллельные транзакции не мешают (levels: Read Committed → Serializable). Durability: persist после commit (WAL).

PostgreSQLMySQL InnoDBOracle

BASE

Database

Basically Available, Soft state, Eventually consistent.

Альтернатива ACID для distributed систем. Приоритет availability над consistency. Данные eventually сходятся. Подходит для social feeds, analytics, caching.

CassandraDynamoDBMongoDB (default)

SQL vs NoSQL

Database

SQL — строгая схема + ACID. NoSQL — гибкая схема + горизонтальное масштабирование.

SQL: relational, joins, transactions. NoSQL типы: Document (MongoDB), Key-Value (Redis), Wide-Column (Cassandra), Graph (Neo4j). Polyglot persistence — используй оба.

SQL: PostgreSQL, MySQLNoSQL: MongoDB, Redis, Cassandra

Replication (Репликация)

Database

Копирование данных между несколькими серверами БД.

Master-Slave: writes в master, reads из replicas. Master-Master: writes в любой (conflict resolution). Sync vs Async: consistency vs latency trade-off.

PostgreSQL streaming replicationMySQL replicationMongoDB replica set

Index (Индекс БД)

Database

Структура данных для ускорения поиска в таблице.

B-tree: O(log N) поиск (default). Hash: O(1) equality. Composite: (a,b) для multi-column WHERE. Trade-off: быстрые reads, медленные writes + disk space.

CREATE INDEX idx ON users(email)Covering indexPartial index

Consistent Hashing

Theory

Маппинг ключей на кольцо — при изменении серверов перемещается минимум данных.

Обычный hash%N перемещает всё при добавлении сервера. Consistent hashing: ключ → ближайший сервер по кольцу. Virtual nodes для равномерности. Используется в distributed cache и sharding.

Memcached ringCassandra partitionerDynamoDB

Event Sourcing

Patterns

Хранение всех событий вместо текущего состояния.

Append-only log событий. Состояние = replay всех events. Полный audit trail, temporal queries. Snapshots для оптимизации. Сложность: eventual consistency, storage growth.

Event StoreKafka as event storeAxon Framework

CQRS

Patterns

Разделение моделей чтения и записи.

Command (write) и Query (read) — разные модели, разные БД. Write: нормализованная. Read: денормализованная (materialized views). Синхронизация через events.

Axon FrameworkEventStoreDBCustom implementation

Saga Pattern

Patterns

Распределённая транзакция через цепочку локальных + компенсации.

Каждый сервис: локальная транзакция + событие. При ошибке — compensating transactions (откат). Choreography (events) vs Orchestration (coordinator). Idempotency обязательна.

Order → Payment → Shipping sagaTemporal.ioCamunda

Idempotency (Идемпотентность)

Theory

Повторный вызов с теми же параметрами даёт тот же результат.

GET, PUT, DELETE — идемпотентны. POST — нет. Реализация: idempotency key в header, deduplication на сервере. Критично для retry logic и payment systems.

Stripe: Idempotency-Key headerSQS deduplicationPUT vs POST

Eventual Consistency

Theory

Данные станут согласованными через некоторое время.

Не мгновенная синхронизация, но гарантия сходимости. Подходит для read-heavy, global distribution. Проблемы: stale reads, conflict resolution (last-write-wins, vector clocks).

DNS propagationCassandraDynamoDB global tables

Horizontal Scaling

Architecture

Масштабирование добавлением серверов (scale out).

Требует stateless сервисов. Shared-nothing архитектура. Auto-scaling по CPU/memory/queue depth. Практически безлимитно, но сложнее stateful компонентов.

AWS Auto Scaling GroupsKubernetes HPAECS

Vertical Scaling

Architecture

Масштабирование увеличением мощности одного сервера (scale up).

Больше CPU/RAM/SSD. Просто, не требует изменения кода. Но: физический предел, SPOF, дорого на top-tier. Обычно для БД где sharding сложен.

AWS: t3.micro → r6g.16xlargeUpgrading RAM/SSD

Microservices

Architecture

Архитектура из независимых сервисов, общающихся через API.

Каждый сервис: свой codebase, своя БД, свой deploy. Плюсы: independent scaling, tech diversity, team autonomy. Минусы: network complexity, distributed transactions, observability.

NetflixUberAmazon

Monolith

Architecture

Единое приложение с общей кодовой базой и БД.

Всё в одном deployable unit. Плюсы: простота, нет network overhead, ACID транзакции. Минусы: scaling всего целиком, long deploy cycles, tight coupling. Modular monolith — компромисс.

Rails monolithDjangoSpring Boot (early stage)

Service Mesh

Architecture

Инфраструктурный слой для управления коммуникацией между сервисами.

Sidecar proxy рядом с каждым сервисом. Обеспечивает: mTLS, retries, circuit breaking, observability, traffic splitting. Data plane (proxies) + Control plane (config).

IstioLinkerdConsul ConnectAWS App Mesh

Reverse Proxy

Architecture

Сервер-посредник перед backend, скрывающий его от клиента.

Функции: SSL termination, caching, compression, load balancing, security (WAF). Forward proxy — для клиента, reverse proxy — для сервера.

NginxCaddyTraefikHAProxy

OAuth 2.0

Auth

Протокол авторизации для делегированного доступа.

Flows: Authorization Code (+PKCE для SPA), Client Credentials (M2M), Device Code. Roles: Resource Owner, Client, Authorization Server, Resource Server. Implicit flow deprecated.

Google OAuthGitHub OAuthAuth0

Token Bucket

Patterns

Алгоритм rate limiting с поддержкой burst.

Bucket заполняется токенами с постоянной скоростью. Запрос забирает токен. Если пустой — reject. Burst = размер bucket. Самый популярный алгоритм (AWS, Stripe, Cloudflare).

AWS API GatewayStripe APINginx limit_req

Lazy Loading

Patterns

Загрузка данных только когда они реально нужны.

Не загружать всё заранее — подгружать по требованию. В БД: lazy fetch связанных сущностей. В UI: code splitting, dynamic import. В кэше: Cache-Aside = lazy loading.

React.lazy()Hibernate lazy fetchCache-Aside pattern

Dead Letter Queue (DLQ)

Architecture

Очередь для сообщений, которые не удалось обработать.

После N retry — сообщение уходит в DLQ. Мониторинг DLQ критичен (alert!). Reprocessing после fix. Без DLQ — poison message блокирует partition.

AWS SQS DLQKafka Dead Letter TopicRabbitMQ DLX

Backpressure

Patterns

Механизм замедления producer при перегрузке consumer.

Если consumer не успевает — producer должен замедлиться, иначе OOM или потеря данных. Реализация: bounded queue, rate limiting, reactive streams (Flux/Mono).

Reactive StreamsTCP flow controlKafka consumer lag

Bloom Filter

Theory

Вероятностная структура данных: 'точно нет' или 'возможно да'.

Массив битов + несколько hash функций. False positive возможен, false negative — нет. Экономит memory vs HashSet. Используется для проверки существования перед дорогой операцией.

Chrome: проверка URL в blocklistCassandra: проверка SSTableRedis: BF.ADD

Leader Election

Theory

Выбор одного узла-лидера для координации в distributed системе.

Алгоритмы: Raft, Paxos, ZAB (ZooKeeper). Лидер принимает writes, followers реплицируют. При падении лидера — re-election. Split-brain — главная опасность.

ZooKeeperetcd (Raft)Redis Sentinel

Distributed Lock

Patterns

Блокировка ресурса в distributed системе.

Один процесс владеет lock. SETNX + TTL в Redis (Redlock для multi-node). Проблемы: TTL слишком короткий (lock expires), network partition (split-brain). Fencing token для safety.

Redis SETNXRedlockZooKeeper ephemeral nodesetcd lease