System Design

Методика структурированного ответа и типовые высоконагруженные системы.

Результат модуля

После модуля вы можете объяснить ключевые понятия, выбрать подход под условия задачи и показать это на коде, запросе или архитектурной схеме.

Темы

  • Требования, масштабы, RPS, storage, SLO и rough capacity estimates.
  • DNS/CDN/LB/API gateway, stateless instances, DB/cache/broker/object storage/search.
  • Replication, sharding, consistent hashing, hot partitions, read/write split, multi-region.
  • Correctness, availability, consistency, operability, security и cost как критерии решения.
  • Типовые задачи: URL shortener, rate limiter, notification, feed, chat, booking, upload, scheduler.

Минимум для E4

  • Знать определения без заученных «магических» формулировок.
  • Объяснять ограничения каждого подхода и называть минимум одну альтернативу.
  • Приводить практический пример: код, схема, запрос или production-сценарий.
  • Учитывать ошибки, наблюдаемость и безопасный rollout там, где это применимо.

Углубление для E5/Senior

  • Оценивать масштаб, стоимость, эксплуатационные риски и совместимость изменений.
  • Проектировать постепенную эволюцию решения, а не только целевую схему.
  • Защищать решение через требования и измеримые trade-offs.

Типовые вопросы

  1. Какие вопросы нужно задать до рисования архитектуры?
    • Подготовьте ответ с примером из production или практики.
  2. Какую консистентность видит пользователь после записи?
    • Подготовьте ответ с примером из production или практики.
  3. Где будет самый вероятный bottleneck и как его наблюдать?
    • Подготовьте ответ с примером из production или практики.

Практика

  • За 45 минут спроектируйте notification service: API, схема данных, queue, retries, rate limits, SLO и failure modes.
  • Сформулируйте три частые ошибки по модулю и признаки их проявления.
  • Добавьте в личные карточки определения и решения, которые не удалось воспроизвести без подсказки.

Связанные темы

Главная · Go · PostgreSQL · System Design · Интервью-практика

Источники

  • Официальная документация используемого языка, БД или платформы.
  • Production-документация команды и проверенные технические разборы.
  • Конкретные ссылки добавляйте при наполнении темы, вместе с датой проверки актуальности.