Архитектор поневоле

Карта курса

Семь актов и два эпилога. Каждый модуль — глава истории и порция решений.

твой прогресс0/43 модулей · 0% · 0 инсайтов

Акт I. Монолит

  1. 01

    Система, которую все боятся трогать

    Первый день Ивана в «Ярмарке»: правка одной строчки в заказах ломает выгрузку для бухгалтерии.

    не начат
  2. 02

    Чего на самом деле хочет бизнес

    Инвестраунд закрыт, план — рост в десять раз. Иван превращает «чтобы не тормозило» в требования, которые можно измерить.

    не начат
  3. 03

    Карта хаоса

    Команда спорит: «переписать всё с нуля» против «ничего не трогать». Иван применяет Cynefin, чтобы понять, в каком домене находится каждая часть системы.

    не начат
  4. 04

    Каталог, который не влезает в таблицы

    Фермеры хотят карточки с произвольными атрибутами, а в products уже сорок nullable-колонок и EAV-костыль. Команда выбирает модель данных для каталога.

    не начат
  5. 05

    Цена связей

    Ретроспектива инцидента первой недели: Иван показывает команде, почему изменение было непредсказуемым, — и считает степени свободы системы.

    не начат
  6. 06

    Границы

    Иван предлагает модуляризовать монолит, не распиливая его на сервисы. Спор с Геной о том, что такое настоящий модуль.

    не начат

Модульный монолит утверждён. Но инвестраунд закрыт, команда утроилась, нагрузка растёт — и модули начинают дребезжать.

Акт II. Рост

  1. 07

    Дребезг зависимостей

    Хотфикс в модуле цен ломает три соседних. Какие виды знания утекли через границы?

    не начат
  2. 08

    Почему база тормозит

    Сезон урожая: p99 записи заказа вырос в двадцать раз, а код не менялся. Иван спускается под капот — к движку хранения.

    не начат
  3. 09

    Первый разрез: платежи

    Платежи выходят из монолита первыми. Сколько знания они утянут за собой через новую границу — и что делать с общей транзакцией, которой больше нет?

    не начат
  4. 10

    Язык межсервисного общения

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

    не начат
  5. 11

    Что резать, а что не трогать

    Двенадцать кандидатов на выделение и команда, готовая пилить всё. Иван достаёт два фильтра: дистанцию и волатильность.

    не начат
  6. 12

    Формула баланса

    Иван защищает план декомпозиции перед советом. Три оси связанности сходятся в одну формулу — и она отвечает, что резать, а что не трогать.

    не начат

План декомпозиции принят, «Ярмарка» выходит в 15 регионов. Одна база на всю страну — что может пойти не так?

Акт III. Распределёнка

  1. 13

    Одна база — одна точка отказа

    Чёрная пятница, пятнадцать регионов, одна база-лидер. Сервер моргнул — и вся страна на одиннадцать минут перестала оформлять заказы.

    не начат
  2. 14

    Шардируй это

    Реплики разгрузили чтение, но запись и объём всё ещё на одном узле, а Москва душит его сильнее всех. Пора резать данные на части.

    не начат
  3. 15

    Деньги не прощают

    Двойное списание, отрицательный остаток у фермера и ночной разбор с юристами. Иван учится изоляции — там, где ошибаться нельзя.

    не начат
  4. 16

    Всё, что может сломаться

    Сервис курьеров ведёт себя так, будто у него два главных узла разом. Сеть врёт, часы врут, паузы врут — кому верить?

    не начат
  5. 17

    Договориться в темноте

    Раз сеть, часы и паузы врут — как гарантированно выбрать одного лидера? Консенсус без магии.

    не начат
  6. 18

    Ребалансировка

    Два сервиса перестукиваются сорок раз на один заказ. Иван предлагает их слить — и объясняет, почему это не откат, а ребалансировка.

    не начат

Система пережила чёрную пятницу. Теперь фермеры хотят аналитику, бизнес — realtime, а поиск отстаёт на сутки.

Акт IV. Платформа данных

  1. 19

    Ночной конвейер

    Поиск отстаёт на сутки, а ночной пересчёт роняет прод. Иван строит конвейер, который не страшно перезапустить.

    не начат
  2. 20

    Река событий

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

    не начат
  3. 21

    Разобрать базу на части

    Крамольная мысль: журнал событий — хребет, а база — лишь производное. «Вывернуть базу наизнанку» — и когда этого делать не нужно.

    не начат
  4. 22

    Экзамен архитектора

    Новое направление «Ярмарка для бизнеса». Марина кидает шесть ситуаций подряд — и в каждой сходится весь курс.

    не начат

Платформа работает. Но накопленные данные поднимают вопрос, на который не отвечает ни одна из книг по архитектуре.

Эпилог

  1. 23

    Цена данных

    Маркетинг просит скорить покупателей по платёжеспособности. Построить это Иван может — данные уже текут через его платформу. Впервые вопрос не «как», а «стоит ли».

    не начат

Проходит несколько месяцев. B2B растёт, платформа справляется. А на совете директоров Марине задают вопрос, который сейчас слышит каждый CTO: «У всех ИИ. Где наш?»

Акт V. Агенты

  1. 24

    Стохастический стажёр

    Совет требует «наш ИИ», поддержка тонет в обращениях. Иван разбирает, что такое агент на самом деле — и где ему не место.

    не начат
  2. 25

    Руки для агента

    Ассистент отвечает красиво, но не знает статус ни одного заказа. Дать агенту руки — и не дать ему лишнего.

    не начат
  3. 26

    Память стажёра

    Агент забывает разговор на третьей реплике и помнит лишнее на десятой. Память — это снова данные, у которых есть хозяин.

    не начат
  4. 27

    Агент читает реку

    Ассистент должен знать каталог и правила платформы. Векторный индекс — ещё одно производное представление, и оно тоже отстаёт.

    не начат
  5. 28

    Бригада агентов

    Один агент разросся в god-класс с двадцатью инструментами. Резать на бригаду — но по каким швам?

    не начат
  6. 29

    Виза для чужого агента

    Оптовики приходят со своими закупочными ИИ и просят «просто дайте доступ». Протоколы — контракты эпохи агентов.

    не начат
  7. 30

    Доверять, но проверять

    Агент в проде — это инцидент, который ждёт своего часа. Тимур строит наблюдаемость, тесты и предохранители для недетерминизма.

    не начат

Агенты работают, предохранители на месте, панели не краснеют. А совет директоров закрывает новый раунд — с условием, которое превратит «Ярмарку» из витрины в источник данных о целой экономике.

Акт VI. Индикаторы

  1. 32

    Миллион рядов

    Совет требует «стать источником данных об экономике». Миллион временных рядов не влезает в привычную базу — но проблема не в размере, а в форме нагрузки.

    не начат
  2. 33

    Тысяча источников

    Внешние данные приходят когда хотят, в форматах, которые меняются без предупреждения. Контракт с миром, которым не управляешь.

    не начат
  3. 34

    Число, которое меняется

    Клиент показывает два отчёта с разными цифрами за один месяц. Оба правильные: официальные числа меняются задним числом.

    не начат
  4. 35

    Свой индекс

    Самое ценное — не чужие ряды, а свои: миллионы живых цен. «Ярмарка» строит собственный индекс — и учится не изобретать науку и не присасываться к чужой базе.

    не начат
  5. 36

    Фабрика прогнозов

    Миллион рядов — миллион прогнозов. Кто их будет делать: миллион моделей, одна глобальная — или чужая, уже обученная?

    не начат
  6. 37

    Что мы знали в тот вторник

    Прогноз в бэктесте гениален, в проде — стыден. Модель подсматривала в будущее — и никто этого не замечал.

    не начат
  7. 38

    Говорящие числа

    Клиенты хотят спрашивать данные словами и получать отчёты текстом. LLM охотно говорит о числах — и охотно их выдумывает.

    не начат

Платформа данных считает, прогнозирует и говорит. Но терминал «Индикаторов» пилят уже три команды — в одном фронтенде, и по пятницам он всё чаще принадлежит никому.

Акт VII. Витрина для витрин

  1. 39

    Фронтенд-монолит

    Терминал пилят три команды, на подходе четвёртая — а деплой один на всех. Пятница, релизный поезд, хотфикс графиков ломает алерты. Где-то Иван это уже видел.

    не начат
  2. 40

    Нарезка и композиция

    Решили резать. По каким швам — и где склеивать: на сервере, на клиенте, в сборке?

    не начат
  3. 41

    Контракты на клиенте

    Зоны независимы до первого «пусть выбор региона фильтрует всё». Общее состояние — это общая база данных, только в браузере.

    не начат
  4. 42

    Сто деплоев в витрину

    Три команды деплоят независимо — и впервые в проде встречаются версии, которые никогда не встречались на стенде.

    не начат
  5. 43

    Маятник

    Автономия победила: команды летят. Через полгода терминал выглядит как три разных продукта. Маятник качается обратно — и это не поражение.

    не начат

Терминал собран из зон, команды летят, панели не краснеют. Остался вопрос, который не решается кодом: кто отвечает за слова, сказанные системой.

Эпилог II

  1. 31

    Подпись

    Агент говорит от имени «Ярмарки». Кто ставит подпись под его словами — и где проходит граница автономии?

    не начат