Комментарии 18
Тема слабовато раскрыта
Зато какая памятка про push/pull!)
Было бы здорово расширить мысль, чего конкретно не хватает. Я старался подсветить общий подход, и немножко углубился в конкретный пример.
Больше примеров наподобие Push/Pull вроде и не добавит ценности (нуок, понятно, что нужно уметь сравнивать). Сухой список тем – тоже вроде не здорово, такого, полагаю, и так навалом.
В общем, обратная связь приветствуется, может, чего-нибудь допишу еще в другой заход
Выбор СУБД, outbox/inbox, event sourcing и т.п.
Ну, то есть больше по конкретным сценариям? Про выбор СУБД не всегда есть даже. Пару примеров:
.1 Web Crawler – вообще про СУБД особо не обсуждалось в нем на практике. Там больше про то, как нагрузку размазать аккуратно
.2 Саджест (подсказки поисковая строка) - там Trie, и тоже СУБД не обсуждается.
В общем, делаю пока вывод, что Push/Pull получилось хорошо, но этого мало, и есть запрос больше по кейсам пройтись.
Я не адепт system design, но разве job-ы и брокеры решают одну и ту же проблему? Это же разные вещи, которые могут быть вместе в одной системе, как их можно сравнивать?
Могут быть сценарии, когда можно сделать через одно либо через другое. Аналитика / постпроцессинг каких-нибудь заявок в E-commerce.
Да вообще на самом деле много сценариев, когда мы можем данные сразу передать в очередь, либо складывать куда-то в хранилище, и раз в какое-то время придет джоба, чтобы обработать накопившееся (раз в час/раз в день).
Во всяком случае, у меня точно были ситуации, когда я между ними выбирал, и ошибался
Я в жёлтый банк собес по System design не прошел с одним из комментариев от их архитектора, что неверно разбил по микросервисам, так как правильно - это разбивать по методологии Domain Driven Design. Видимо без DDD не пройти собес ни в одну компанию.
Ну хорошо, книга. А в резюме тоже книгу указывать? Всем же опыт подавай - тем же системным архитектором, которого еще нет.
А перед тем, как позвать на алгоритмическую секцию, сначала проверят, есть опыт работы алгоримистом? Компании вкрутили секцию system design как дополнительный фильтр в воронку найма, так как людей с опытом в 5-7 лет на рынке труда прилично, все хотят много денег. Компании отдают себе отчёт, что те, у кого спрашивают system design на позицию синьора, чаще всего будет иметь свободу воли на уровне "могу выбирать, какие таблички в БД будут по описанию из ТЗ и как будет выглядеть SQL запрос". А будет ли у команды новый микросервис для фичи, нужна ли ему БД или redis решит уже прикрепленный к команде архитектор.
Автор, подскажите, пожалуйста.
В вашей памятке на последнем рисунке что означает фраза "no metrics seen"? (Остальное понятно). Заранее спасибо.
Я там постарался себе стрелочками разного цвета время отобразить.
Идея такая: Есть крон-джоба, запускающаяся раз в час в 00 минут, 00 секунд. Она обычно отрабатывает 2 секунды (из головы пример. "Некое незначительное время"), либо мало данных (ночью пришло 1к вместо 100к днем, и быстрее завершаем работу). Сценарий:
.1 Зарезервировали инстанс (например, spot в AWS)
.2 Сделали работу
.3 Вернули инстанс (освободили ресурсы, не платим за него деньги)
.4 Пришел запрос за метриками, инстанса нет (уже)
В случае с Pull если между 1 и 3 происходит мало времени - это проблема. В случае с Push - нет
Куда прошли, на какой грейд, сколько заняло времени со старта подготовки до оффера? Собесились именно в фаанг? Ну и ссылочку как к алгосам готовились если есть. Спасибо
Про алгоритмы вот тут писал: https://habr.com/ru/articles/980270/
Я как раз сначала хотел покрыть темы подготовки, а затем уже личной историей поделиться. Так что подписывайтесь, ставьте лайк :) Все будет
Для тех кому лень читать, пройти в любую компанию так судя из статьи: читайте книги и будьте умными, отвечайте правильно на вопросы в интервью и не отвечайте неправильно.
А на какую позицию собеседование? Архитектор / senior dev?

System Design. Как пройти в любую компанию