Загружаем изображение…
📂 Кейс: «Почему вы не взяли Kafka?» — вопрос с собеседования, который стал реальным проектом
🏢 Контекст:
Маркетплейс доставки еды, ~200 заказов в минуту в пик. Команда из 8 разработчиков, монолит на Python, один PostgreSQL. Собеседование на Middle SA — тестовое: предложить целевую архитектуру на 12 месяцев.
😬 Проблема:
Кандидат на схеме нарисовал 6 микросервисов, Kafka и Redis "как в статьях". На защите тестового техлид спросил: "Зачем Kafka при 200 заказах и команде из 8 человек? Как будете дебажить?"
Кандидат уверенно отвечал про масштабируемость. Но не смог объяснить, какой бизнес-риск решает брокер на данном этапе.
🔍 Что сделал аналитик (уже на проекте, тот же вопрос от бизнеса):
1. Собрал НФТ: пик 200 зак/мин, рост до 500 за год, RTO 30 мин
2. Выделил узкое место: не заказы, а расчёт времени доставки из трёх внешних сервисов (карты, курьеры, кухня)
3. Предложил поэтапно:
— Сейчас: вынести расчёт ETA в отдельный сервис + кэш Redis (синхронный REST для заказа остаётся)
— Через 6 мес.: события «заказ создан» в RabbitMQ для уведомлений и аналитики
— Kafka — только при выходе на 500+ и появлении event streaming для отчётов
4. Зафиксировал в ADR: почему не Kafka на старте (операционная сложность, нет consumer-групп на объёме)
✅ Результат:
Архитектурный комитет принял roadmap без "микросервисов ради микросервисов". Через 4 месяца ETA-сервис снизил таймауты на 40%. RabbitMQ добавили точечно — под уведомления.
💡 Выводы:
▫️ На собеседовании и на проекте побеждает не самая модная схема, а обоснованная под контекст
▫️ Вопрос "почему не X?" важнее, чем "мы взяли X"
▫️ Аналитик связывает НФТ, команду и этап продукта — не только рисует блоки
Кстати, у нас идет обновление курса "Архитектура для аналитика", скоро вернется в новом формате. Мы делим большой курс на два уровня:
База — чтобы перестать плавать в архитектуре
Hard — для сложных архитектурных решений
Подробности на сайте. Оставь заявку, чтобы первым получить уведомление о запуске!
🏢 Контекст:
Маркетплейс доставки еды, ~200 заказов в минуту в пик. Команда из 8 разработчиков, монолит на Python, один PostgreSQL. Собеседование на Middle SA — тестовое: предложить целевую архитектуру на 12 месяцев.
😬 Проблема:
Кандидат на схеме нарисовал 6 микросервисов, Kafka и Redis "как в статьях". На защите тестового техлид спросил: "Зачем Kafka при 200 заказах и команде из 8 человек? Как будете дебажить?"
Кандидат уверенно отвечал про масштабируемость. Но не смог объяснить, какой бизнес-риск решает брокер на данном этапе.
🔍 Что сделал аналитик (уже на проекте, тот же вопрос от бизнеса):
1. Собрал НФТ: пик 200 зак/мин, рост до 500 за год, RTO 30 мин
2. Выделил узкое место: не заказы, а расчёт времени доставки из трёх внешних сервисов (карты, курьеры, кухня)
3. Предложил поэтапно:
— Сейчас: вынести расчёт ETA в отдельный сервис + кэш Redis (синхронный REST для заказа остаётся)
— Через 6 мес.: события «заказ создан» в RabbitMQ для уведомлений и аналитики
— Kafka — только при выходе на 500+ и появлении event streaming для отчётов
4. Зафиксировал в ADR: почему не Kafka на старте (операционная сложность, нет consumer-групп на объёме)
✅ Результат:
Архитектурный комитет принял roadmap без "микросервисов ради микросервисов". Через 4 месяца ETA-сервис снизил таймауты на 40%. RabbitMQ добавили точечно — под уведомления.
💡 Выводы:
▫️ На собеседовании и на проекте побеждает не самая модная схема, а обоснованная под контекст
▫️ Вопрос "почему не X?" важнее, чем "мы взяли X"
▫️ Аналитик связывает НФТ, команду и этап продукта — не только рисует блоки
Кстати, у нас идет обновление курса "Архитектура для аналитика", скоро вернется в новом формате. Мы делим большой курс на два уровня:
База — чтобы перестать плавать в архитектуре
Hard — для сложных архитектурных решений
Подробности на сайте. Оставь заявку, чтобы первым получить уведомление о запуске!