Miro ванлав ❤️ спасаете меня каждый день. Я смотрел как у вас клиент работает, очень похоже да, protobuf?
Сложность в нескольких моментах, но конечно все решаемо, просто ищу сейчас девопса и техлида, чтобы начать полноценное решение писать, бекенд тянул один человек долгое время.
А так вообщем:
- у нас очень неравномерная нагрузка, на ивент может придти 1000-10000 человек, причем практически одновременно, потусят час-два-три и уйдут.
- в Миро редко бывает(или ошибаюсь?) прям много человек в одной борде, а у нас по 50 человек только в одной комнате, а они еще связаны между собой через спейс, то есть, грубо говоря может быть 10000 чел на одном стейтфул сокете и часть из них тусит в комнатах по 50 чел, каждая комната может слать до 1500/сек месаджей на сервер, что вызывает фанаут в 73500/сек месаджей на участников комнаты. А ведь есть еще "сцены" где сидят до 1000 человек и шлют свои реакции.
- сильно скипать/тротлить нельзя, потому что нужен фреймрейт, ну у вас так же
- когда вынесем стейс в какой нибудь редис - это все равно не конец, потому что там уже надо скейлить хранилище стейта и балансировать нагрузку
- надо еще не забывать про стоимость, если у нас, скажем 10 дней в этом месяце ожидаются эвенты по 10к людей, а в другие дни нагрузка в 2-10 раз меньше - то надо гасить неиспользуемые ресурсы и либо как-то очень быстро их поднимать в ответ на нагрузку, либо синхронизироваться с расписанием эвентов
Хотел спросить, кстати, вы замеряли разницу нагрузки на проц при вашей бинарной сериализации vs json?