- DAU = 1 million
- Объем данных - 1 million tickers
- 12 байт на котировку
- У каждого клиента максимум 1000 tickers
- Необходимо реализовать ultra-low latency систему. То есть сократить момент, когда биржа сделала event в нашу сторону и мы показали его клиенту
- Под ultra-low-latency мы закладываем SLO отдачи информации от момента публикации у Брокера до момента получения инфы клиентом. У нас это будет до 200 мс. Почему такая цифра? → Больше уже глаз человека начинает замечать различия.
- Прикинем, что для каждого ticker будет 10 обновлений в секунду
- Также наша система будет вычитывать и хранить все tickers (1 million), чтобы минимизировать задержку получения новых тикеров, а также упростить логику
- Про геораспределенность: так как наша система получает данные от Биржы, то нам не нужно синковать данные между нашими кластерами.
Также необходимо допом сказать про особенности системы:
- Потенциально кластера должны находиться в стране, где мы работаем. Так как иначе есть риск, что нам не разрешат работать в ряде стран.
- В реальности нужно продумать, а как мы будем обеспечивать синхронность/одинаковость данных между разными странами. Условно, в Аргентине сервера упали и клиенты там не получат данные, а в Таиланде клиенты будут получать эту инфу.
- В рамках Неделя 6 будет сказано про Надежность и как ее можно посчитать. На реальном собесе стоит сказать, что нам в реальной системе нужно учитывать Uptime и поэтому понадобятся доп расчеты.
Важно
Так как нагрузка большая, то здесь мы будем считать помимо стандартных параметров еще и нагрузку на сеть.
- Но важный момент: на реальном интервью не нужно всегда все считать. Нужно делать только те расчеты, которые помогут тебе спроектировать систему. Если бы ты делал эту систему на собесе, то можно кратко обсудить с интервьюером, что нагрузка большая и примерно накинуть расчеты, но не разбирать до винтика.
- Ниже будет подробный расчет сети, чтобы ты понимал, а как это делается.