Кандидат на system design
Защитите набросок на 1–10 M DAU с именованными инцидентами (APP_THROTTLING, DB_IOPS_EXCEEDED, REDIS_NEAR_OOM и др.), жёлтым коридором 70–85% и конвертом роста «держит до N DAU» — без пустых прямоугольников на доске.
Калькулятор системного дизайна — systemdesigncalculator.online
Из DAU и двух фиксированных топологий получаете пиковый RPS, здоровье системы, месячную оценку и ссылку или PDF, которые можно сохранить. Основатель, кандидат на system design и консультант не собирают одну и ту же таблицу заново: пресеты SaaS 50k, marketplace 1M и content 10M (эталон ≈11 574 RPS и ≈$2 705/мес) дают защищаемую базу с первого запуска.
Публичный сайт считает одну модель ёмкости. Дальше та же модель, и агент на вашем сервере только заполняет её.
Сейчас
Две топологии: classic и очередь с workers. DAU становятся пиковым RPS, инцидентами и месячной оценкой по одному из четырёх прайс-паков. Формулы остаются на экране.
Сейчас
Применить патч рекомендации, сравнить до и после, скопировать ссылку и скачать отчёт. Схема не обрастает новыми типами узлов.
Ваш сервер
Запустите этот симулятор на сервере, который контролируете вы. Публичный origin и адрес доната остаются в окружении этого сервера.
На вашем стенде
Агент вызывает существующий запрос simulation, пишет только поля SystemState и применяет patchJson рекомендации. Он настраивает нагрузку, железо и две поддерживаемые топологии.
Агент не добавляет Kafka, объектное хранилище, WAF, autoscale и свободный редактор графа. Новая топология — отдельный продукт позже, а не то, что агент выдумывает.
System Design Capacity Simulator оценивает classic Users → Nginx → CDN → App → Redis → Postgres или queue-workers от DAU до пикового RPS, инцидентов от утилизации, месячной оценки и ссылок /app#s= или PDF — в рамках двух фиксированных топологий, без drag-and-drop редактора microservices.
Защитите набросок на 1–10 M DAU с именованными инцидентами (APP_THROTTLING, DB_IOPS_EXCEEDED, REDIS_NEAR_OOM и др.), жёлтым коридором 70–85% и конвертом роста «держит до N DAU» — без пустых прямоугольников на доске.
Увидьте первый месячный spend по vCPU, RAM, SSD и исходящему Gbps — не прайс-лист облака — и поймите, где ломается цепочка Users → Nginx → CDN → App → Redis → Postgres.
Передайте клиенту PDF или ссылку `/app#s=`, которую можно открыть без вашей таблицы. Pin A и патчи рекомендаций остаются на тех же прозрачных формулах в отчёте.
Рисуют Users, CDN и БД, а пиковый RPS, рабочий объём кэша и месячная стоимость появляются только через час созвона или таблицы.
Семь пресетов (SaaS 50k, marketplace 1M, content 10M, write-heavy, async-queue, media-object, edge-secure) загружают готовый classic или queue-workers с DAU, CDN, пулом приложений и tier Redis.
Экономия порядка 45–60 минут против таблицы с нуля.
Спорят о количестве машин по привычке, не сравнивая CPU, IOPS и память Redis с реальным пиковым RPS.
Рекомендации выдают патчи SystemState от текущей утилизации — APP_THROTTLING и APP_PRESSURE считаются от живого CPU, а не фиксированного +8.
Экономия 20–40 минут на каждый обзор sizing.
70–85% utilization трактуют как CRITICAL и зовут on-call на давление, которое ещё не инцидент.
Коридор 70–85% — явное давление: collectIncidents не меняется, но карточки рекомендаций могут закрыть APP_PRESSURE и DB_IOPS_PRESSURE до перехода в CRITICAL.
Экономия 15–30 минут на согласовании severity.
В финансах видят большой чек, а REPLICA_IDLE и избыточный Redis в narrative не попадают.
Инциденты показывают REPLICA_IDLE и REDIS_NEAR_OOM; COST-рекомендации сначала предлагают CDN и right-size, а не слепой scale-out.
Экономия 30–45 минут на согласовании cost и utilization.
Две вкладки Excel или два созвона, чтобы понять, спасает ли workers или реплики от SLO_MISS.
Pin A на compare strip замораживает базу, пока вы накладываете патчи; health, RPS и месячная оценка обновляются на живом плане.
Экономия 25–40 минут на A/B-обсуждении архитектуры.
Ждут автоматического масштабирования, но никто не называет потолок DAU при фиксированном железе.
Growth envelope держит инстансы, ядра, tier Redis и реплики постоянными и показывает, сколько DAU выдерживает схема — честная ёмкость, не elastic magic.
Экономия 20–35 минут на roadmap-вопросах по ёмкости.
Кандидат уходит в vCPU, когда интервьюеру нужны трафик и bottlenecks.
Interview mode скрывает детали hardware, оставляя инциденты, топологию и health для чистой истории на доске.
Экономия 10–20 минут на пересборке scope в mock.
Забывают, что working set растёт с пользователями; OOM всплывает поздно на нагрузке.
Объём считается как DAU × 2 объекта × размер объекта; REDIS_NEAR_OOM срабатывает до illusion «кэш бесплатный».
Экономия 15–25 минут на разборе «откуда память».
Kafka-shaped трафик рисуют на classic; глубина очереди и WORKER_SATURATED в модель не попадают.
Пресет async-queue включает queue-workers с publish RPS, depth, utilization, QUEUE_BACKLOG и WORKER_SATURATED — только где эта топология уместна.
Экономия 30–50 минут на согласовании async ingest.
На слайдах multi-region, WAF SKU и reserved discounts, которых в формулах нет.
Пределы модели на лендинге и в отчёте: без Kafka/S3/search/WAF SKU, без autoscale, Users и Nginx всегда зелёные, четыре пакета unit-rate — не list price AWS.
Экономия 20–40 минут на защите credibility перед техпокупателем.
Отчёт симулятора идёт в том же порядке: трафик, пиковый RPS, утилизация и размеры пулов, инциденты и жёлтый коридор, затем месячная оценка. В готовом run — полные формулы и LaTeX; этот блок их не заменяет.
Округление для whiteboard сохраняет полный DAU и делит DAU × requestsPerUser на 100 000 для удобного RPS (например 10M × 20 / 100 000 → 2 000 средний и 10 000 пик при 5×). Инциденты и месячная оценка не меняются.
average RPS = DAU × requestsPerUser / 86400
10 000 000 × 20 / 86400 ≈2315
peak RPS = average RPS × peakMultiplier
≈2315 × 5 ≈11574
Redis object working set = DAU × 2 × objectSizeKb
10 000 000 × 2 × 1 = 20 000 000 Kb
Числа из пресета content 10M с дефолтными knob’ами — тот же golden vector из доменных тестов, не вымышленный «стартап X».
| Пресет | content-10m (golden default) |
|---|---|
| Пиковый RPS | ≈11 574 |
| Месячная оценка | ≈$2 705 |
| Топология | classic |
Откройте симулятор, загрузите content 10M и запустите с дефолтами — пиковый RPS и месячная оценка совпадут с живым отчётом.
Каждая строка — те же дефолты пресета, что в симуляторе, затем computeSystemCapacity для этого состояния. Цифры иллюстрируют формулы ёмкости: это не рейтинг, не прайс облака и не list price.
Инциденты: На этом дефолте нет
На этом дефолте нет критичных кодов инцидентов.
Открыть в симулятореИнциденты: На этом дефолте нет
На этом дефолте нет критичных кодов инцидентов.
Открыть в симулятореИнциденты: REPLICA_IDLE
Ломается на APP_THROTTLING; эта конфигурация выдерживает до 19 584 001 DAU.
Открыть в симулятореИнциденты: REPLICA_IDLE
Ломается на DB_IOPS_EXCEEDED; эта конфигурация выдерживает до 5 004 163 DAU.
Открыть в симулятореИнциденты: На этом дефолте нет
На этом дефолте нет критичных кодов инцидентов.
Открыть в симулятореИнциденты: REDIS_NEAR_OOM
Ломается на APP_THROTTLING; эта конфигурация выдерживает до 12 240 001 DAU.
Открыть в симулятореИнциденты: На этом дефолте нет
На этом дефолте нет критичных кодов инцидентов.
Открыть в симулятореИнциденты: REPLICA_IDLE
Ломается на APP_THROTTLING; эта конфигурация выдерживает до 19 584 001 DAU.
Открыть в симулятореИнциденты: REPLICA_IDLE
Ломается на DB_IOPS_EXCEEDED; эта конфигурация выдерживает до 5 004 163 DAU.
Открыть в симулятореЭти бюджеты round-trip — ориентиры для интервью, не вывод симулятора. Калькулятор ёмкости их не считает и не моделирует.
Откройте симулятор с этой страницы, выберите пресет (или golden content 10M) и убедитесь, что classic или queue-workers соответствует вашей истории.
Смотрите пиковый RPS, месячную оценку, граф и инциденты: APP_THROTTLING, DB_IOPS_EXCEEDED, SLO_MISS, REDIS_NEAR_OOM, REPLICA_IDLE, WORKER_SATURATED, QUEUE_BACKLOG где применимо.
Откройте Recommendations на compare strip и применяйте патчи SystemState от текущей нагрузки — сначала инциденты, затем давление в коридоре, затем cost и headroom.
Pin A фиксирует базовый план, пока вы меняете Now; сравнивайте health, cost и envelope без второй таблицы.
После завершённого job (share, PDF или путь CRITICAL → OPTIMAL) скопируйте `/app#s=` или скачайте PDF — donate опционален после ценности, не paywall.
Это симулятор с двумя топологиями — classic web stack или queue-workers — который из DAU и mix запросов даёт пиковый RPS, health и cost. System Design Capacity Simulator не конструктор произвольной архитектуры; вы крутите пресеты внутри семейства.
Средний RPS = DAU × запросов на пользователя в день / 86 400. Пиковый RPS = средний RPS × peak multiplier — те же формулы, что в отчёте ёмкости.
Да. Growth envelope держит инстансы, ядра, tier Redis и реплики фиксированными при росте DAU — потолок при текущей схеме, не elastic autoscale.
Working set: DAU × 2 объекта × размер объекта в KB. Два объекта на пользователя зафиксированы — при росте DAU память Redis растёт даже при похожем mix.
Четыре компонента — vCPU, RAM (app + Redis), SSD TB и origin Gbps — умножаются на один из четырёх пакетов unit-rate. Без reserved скидок и без гарантии AWS list price.
Interview mode скрывает детали hardware, оставляя топологию, инциденты и health. Пресеты от 50k до 10M DAU дают защищаемый пиковый RPS и имена инцидентов для mock interview и консалтинга.
Нет. Две фиксированные топологии — classic web stack и queue-workers — и настройка пресетов внутри семейства. Это математика ёмкости для интервью и раннего продакшена, не drag-and-drop microservices.
Так задумано: для них нет модели отказа. Узкие места появляются на CDN, app pool, Redis, Postgres, очереди и workers, где работают формулы ёмкости.
Да. Готовое состояние живёт в `/app#s=`. Старые ссылки с `/#s=` на корне сайта редиректят на `/app` с тем же hash.
Нет. Вы выбираете один из четырёх пакетов unit-rate — generic, AWS-shaped, Hetzner или Yandex — и отчёт умножает vCPU, RAM, SSD и egress. Reserved и committed скидок в модели нет.
Working set: DAU × 2 объекта × размер объекта в KB (2 объекта на пользователя зафиксировано константой). Больше DAU — больше ключей даже при том же mix запросов.
Нет. Growth envelope увеличивает DAU при неизменных инстансах, ядрах, tier Redis и репликах. Это потолок при текущем железе, не elastic scale-out.
Маркетинг на `/en` и `/ru`. В симуляторе — переключатель EN/RU; `/app?locale=en` или `?locale=ru` задаёт стартовую локаль, если hash `#s=` не переопределяет её.
Симулятор бесплатен. После завершённого job — PDF, share или улучшение CRITICAL к OPTIMAL — появляется опциональный donate. Пресеты, инциденты и export не блокируются.
Опциональная поддержка после ценности: PDF на руках, отправленная share-ссылка или план ближе к OPTIMAL. Donate остаётся на `#donate` и не затирает share hash.

Tron (TRC20)
TS3fcBmDW3iN21rT63ktpYQA9EJf7GyWhX
Формулы видны в отчёте симулятора; блок model на этой странице перечисляет, что считается и что намеренно не моделируется. Мы не публикуем счётчики загрузок, пользователей, отзывы или гарантии места в выдаче.
Контент страницы обновлён: .