Какую бы вы сделали бекенд архитектуру для месенджера?
Задача чисто теоретическая, поэтому тонкости можно не уточнять. А если от тонкостей что-то зависит, то можно об этом написать.
Понятно только то что нужно сделать конкурента Viber, Telegram, Whatsapp. Похоже так обычно не делают, а сначала нужно требования конкретные собрать. Допустим сейчас нужно накидать верхнеуровнево архитектуру в документацию, которая будет основой дальше, когда будут понятны другие требования.
Сразу понимаю что зависит от дальнейших планов, если планируем через год захватить мир и 1B активных пользователей, то сразу микросервисы нужно рассматривать, иначе можно начать с монолита.
Но возможно есть сразу какие-то важные моменты/подходы в таком деле которые будет полезно знать. К примеру:
- где хранить сообщения?
- Какие сервисы выделить?
- Как обеспечить передачу и консистентность сообщений между разными частями мира в разных датацентрах?
- Как балансировать входную нагрузку если 1М запрос в секунду на 1 инстанс сервера.