Семь паттернов системного дизайна, к которым снова возвращаются интервью
TL;DR
Новые задачи интервью редко изобретают другую физику — они пересобирают знакомые ходы. Назвал паттерн — объясни метрическое следствие — добавил сценарий отката — двигайся дальше, вместо бесконечного наращивания квадратиков.
Определение
Здесь паттерн — это форма ответа: предусловие, инвариант, отмена действия по тревогам. Это уже не маркетинговый термин («cloud‑native») и уже не один переключатель («включите gzip»).
Почему это важно
Скрытые критерии оценки часто строят на прослеживаемости:
- формулировка → паттерны нагрузки (шипы чтений, сезонность);
- нагрузка → компромиссы между консистентностью, латентностью, ценой;
- компромиссы проступают в графиках, которые ожидают в уточняющих вопросах.
Грамотный словарь паттернов уводит разговор от заученных акронимов к наблюдаемым следствиям — в том же духе, как рассуждения про архитектуру собираются в материалах Martinfowler.com.
Паттерны и опции
| № | Паттерн | Сигнал в формулировке задачи | Опираемся на какие блоки | Что заранее раскритиковать вслух |
|---|---|---|---|---|
| 1 | Терминация на периметре | HTTPS, роутинг, грубая аутентификация | прокси у края | ротация сертификатов; лимиты, маскирующие злоупотребления |
| 2 | Stateful‑партиционирование | рост ключевого пространства | партиционированное хранилище | горячие ключи, планы resharding |
| 3 | Масштаб чтений репликами | можно чуть отставание | реплика + кеш | лаг репликации, сюрпризы при failover |
| 4 | Асинхронный позвоночник | пики записи, аудит, письма | брокер + воркеры | семантика доставки и «ядовитые» сообщения |
| 5 | Производные read‑модели | OLTP + отчётность | поток обработки + аналитическое звено | мост между консистентностями, лаг по watermark |
| 6 | Устойчивость к flaky‑партнёрам | таймауты и ретраи | политики повторов | лавина ретраев, расширяющая инцидент |
| 7 | Операционный каркас | «как запускать безопасно» | метрики и алёрты | дашборды без привязки к SLO |
Успешное интервью чаще коррелирует с глубиной двух ходов, чем со всем столбцом галочек.
Компромиссы
Раннее наслоение паттернов создаёт иллюзию полноты — ревьюер хочет глубину по двум сюжетам, а не галерею блоков. Отсутствие сценариев отката звучит как зелёное поле без инцидентов. Диаграмма без чисел гасит темп — держите хотя бы один порядок QPS и порядок размера сообщений как рабочее предположение.
Как тренировать в ArchiPanopticon
Раз в неделю:
- Возьмите одну строку таблицы как «герой», остальных сделайте каркасом.
- Прогон со стационарной нагрузкой — сохраните медиану и хвост.
- Заведите «антагонист»: замедление downstream или рост ошибок в рамках топологии.
- Проговорите лечение другим паттерном (напр. backoff + отдельный DLQ‑аналог).
- Завершите: «что именно мы измерили, чтобы убедиться, что стало лучше».
Циклы важнее зубрёжки типовых вопросов.
FAQ
Нужно ли заучивать продукты?
Сначала роли и протоколы; имена платформ — иллюстрация, не суть доказательства.
Три блока или тридцать?
Глубже 8–11 обоснованных примитивов, чем декорации «на полотно».
Про CAP на каждый чих?
На уровень фактов задачи (теорема CAP) без ритуального зачитывания.
Просели оценочные задачи?
Показывайте разложение (пользователи × действия × усиление) вместо «магической точности».
Как ссылаться на источники честно?
Официальные руководства облаков, Postgres про конкуренцию, CNCF glossary плюс нейтральные энциклопедии — достаточно для тона «инженера, читающего первоисточник».
Читать дальше
- «Википедия»: проектирование систем — границы предметной области интервью.
- Серия книг Google SRE — бюджет ошибок как язык паттернов.
- AWS Architecture Center — как маркетинговые паттерны называются в отраслевой речи.