не о синтаксисе — об архитектуреnot about syntax — about architecture

System DesignSystem design

Проектирование распределённых систем — язык-агностичные концепции, которые спрашивают на собеседованиях отдельно от кодинга: масштабирование, консистентность, очереди сообщений, кэширование. Каркас: 10 тем, страницы фич ещё не написаны.Designing distributed systems — language-agnostic concepts asked about in interviews separately from coding: scaling, consistency, message queues, caching. Skeleton: 10 topics, feature pages not yet written.

ТемыTopics

МасштабированиеScalabilityвертикальное vs горизонтальное, пределы каждого подходаvertical vs horizontal, the limits of each approachinterview Load Balancingалгоритмы распределения нагрузки, health checksload-distribution algorithms, health checks КэшированиеCachingстратегии инвалидации, CDN, cache-aside vs write-throughinvalidation strategies, CDNs, cache-aside vs write-throughinterview Database Scalingшардирование, репликация, индексированиеsharding, replication, indexinginterview CAP Theoremмодели консистентности, компромиссы CP vs APconsistency models, CP vs AP tradeoffsinterview Message Queuesпаттерны Kafka/RabbitMQ, at-least-once vs exactly-onceKafka/RabbitMQ patterns, at-least-once vs exactly-once Rate Limitingtoken bucket, sliding window, leaky bucket API DesignREST vs gRPC vs GraphQL — когда что выбирать— when to pick which Consistent Hashingраспределение данных по узлам с минимальным перемещением при изменении кластераdistributing data across nodes with minimal movement when the cluster changes Microservices vs Monolithкогда дробить сервис оправдано, а когда это преждевременная сложностьwhen splitting a service is justified vs premature complexity

статус и оговоркаstatus and caveat

Это каркас: 10 тем зафиксированы, страницы ещё не написаны. Материал здесь язык-агностичен — он живёт в cpp/ по историческим причинам (готовился вместе с C++ собеседованиями), но не привязан к синтаксису C++ так, как stl/ или patterns/.This is a skeleton: 10 topics are locked in, pages not yet written. The material here is language-agnostic — it lives under cpp/ for historical reasons (prepared alongside C++ interview prep), but isn't tied to C++ syntax the way stl/ or patterns/ are.