Рубрика «system design»

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

Меня зовут [Имя], и я хочу рассказать, как мы прошли классический путь «изобретения велосипеда», набили шишки на race condition-ах и в итоге поняли, что индустрии нужен не очередной необанк, а открытый стандарт финансового учета. Так появился проект Qazna.

В этой статье я не буду продавать вам продукт. Я покажу код, архитектурные решения и то, как мы пытаемся сделать «Linux для финансов».

Проблема: Ловушка UPDATE accounts

Читать полностью »

Привет! Эта статья - текстовая версия моего стрима с разбором задачи на бесконечную ленту по System Design из https://t.me/siliconchannel/141 этого поста.

Рассмотрим классическую задачу из System Design интервью - персональная лента подписок. По сути, мы проектируем упрощённый клон Instagram. Сама задача звучит следующим образом:

Делаем сервис: подписки на авторов, публикации постов, выдача персональной ленты с пагинацией. Нагрузка: чтение доминирует - 30 тыс. RPS; запись постов 1000 RPS; есть “мегапопулярные” авторы.

Этапы

Читать полностью »

Агенда

Добрый день, дорогие читатели!

Архитектурные решения, грабли и RabbitMQ

Привет!

Я Python-инженер. Последние несколько лет я в одиночку строил довольно сложную бэкенд‑систему, и за это время набил немало шишек и нашел, как мне кажется, несколько интересных решений. В этой статье я хочу поделиться не «историей успеха», а конкретными архитектурными проблемами и их решениями при построении высокопроизводительного сервиса на асинхронном Python.

Статья будет полезна тем, кто работает с FastAPI, микросервисами и думает о надежности и масштабируемости своих систем.

1. Проблема: Хаос из 20+ AI-моделей

Читать полностью »

Привет!

Я — Зинченко Иван, IT-Lead в направлении разработки цифровых каналов в Газпромбанке. За последние 3 года я провёл и прошел десятки собеседований по System Design и заметил: 80% кандидатов проваливаются на одной и той же ошибке - не фиксируют основные требования к системе.

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

Для чего нам нужны требования? 

Сбор и фиксация требований это первый и самый важный этап при Проектировании IT-СистемыЧитать полностью »

Кто я и зачем всё это

Всем привет! Меня зовут Бодров Иннокентий. Я — продакт, аналитик и архитектор с более чем 17-летним опытом в разработке информационных систем, построении успешных продуктов в телеком-индустрии, финтехе, электронном документообороте и корпоративных порталах.

Последние несколько лет я активно продвигаю идеи работы на основе здравого смысла, бережливости и современного, гибкого (в хорошем смысле слова) продуктового подхода. И один из инструментов, который мне помогает в этом — это Domain-Driven Design (DDD).

Читать полностью »

System Design Interview — пожалуй, один из самых «бесформенных» этапов технического собеседования. Здесь важно не найти единственно верное решение, а продемонстрировать системное мышление, умение работать с абстракциями, логически выстраивать архитектуру и аргументированно делать выбор технологий.

Александр Кучук, эксперт сообщества Spring АйО, подготовил авторскую статью, в которой шагом показывает, как структурировать интервью, какие вопросы задавать, как рассуждать и что оценит интервьюер.

Кстати, Александр ведет репозиторий с заметками: Читать полностью »

К сожалению, в последнее время всё больше и больше людей советуют использовать JWT для управления пользовательскими сессиями в веб-приложениях. Это ужасная, ужасная идея, и в этом посте я объясню, почему.

Чтобы избежать недопонимания, я введу термины:

  • Stateless JWT – Токен JWT, который содержит сессионные данные, вшитые непосредственно в этот токен.

  • Stateful JWT – Токен JWT, который содержит лишь идентификатор сессии. Сессионные данные хранятся при этом на сервере.

  • Читать полностью »

Несколько лет назад я начал всё больше разбираться в том, как проектируются большие и сложные IT-системы. Ещё и такие, которые выдерживают огромные нагрузки: обрабатывают запросы миллионов пользователей каждый день, гоняют петабайты данных ежемесячно и всё такое. YouTube, TikTok, Google Docs и т.п.

А в последнее время и по работе чаще стало необходимо погружаться в архитектурные обсуждения. Интересно ещё и то, что в крупных IT-компаниях всё чаще наблюдается тренд на проведение так называемых System Design Interview. Это по сути архитектурное собеседование для специалистов с серьёзным уровнем.

Читать полностью »

Привет! Сегодня поговорим про такого зверя, как positional bias. Если вы работаете с поисковыми системами или рекомендательными сервисами, то наверняка сталкивались с этой проблемой. Разберёмся на примере задачи по ml system design — предсказание вероятности клика по товару (известной как CTR — Click-Through Rate) в поисковой выдаче.

Описание задачи.
Вы владелец товарной платформы. На платформе продавцы могут продвигать товары за фиксированную ставку. Ставка взимается только в том случае, если был совершен клик по товару. У вас есть определенное количество свободных слотов для продвижения товаров. Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js