Острова вместо серверов: как сделать мессенджер, который переживёт изъятие своего сервера
Если вы хоть раз обсуждали «правильную» архитектуру мессенджера, вы знаете, что разговор всегда скатывается в два полюса, и оба плохие.
Полюс первый: чистый P2P. Никаких серверов, клиенты говорят напрямую. Звучит красиво ровно до первого практического вопроса. Собеседник офлайн, а вы хотите написать ему сейчас. Куда уйдёт сообщение? В никуда, ждите, пока он включит телефон одновременно с вами. NAT, симметричные файрволы, спящий Android, который убивает фоновые сокеты. P2P горит на неудобстве.
Полюс второй: сервер. Удобно, офлайн-доставка есть, пуши есть. И ровно одна коробка, в которой лежат личности всех, граф контактов всех, очереди всех. Эту коробку можно заблокировать по сети, можно изъять физически, можно прийти к оператору с предписанием. Серверные мессенджеры горят на сервере.
Один из наших пользователей в бете сформулировал это лучше, чем мы в любой презентации: обсуждение альтернатив всегда имело два полюса. Либо ищем инфраструктуру как в Matrix, где все сидят по своим загонам и не пишут друг другу. Либо сидим без офлайн-сообщений как в P2P. Либо вообще не можем подключиться, потому что мосты для обхода блокировок съела моль.
Мы делаем RCQ, мессенджер в духе старой аськи, но на современной крипте. И последние месяцы мы потратили на то, чтобы найти выход из этого треугольника. Ниже модель, к которой мы пришли, и, что важнее, места, где она пока спотыкается. Это не готовый протокол, это дизайн и первые слои. Но он внутренне непротиворечив, и спор о двух полюсах он закрывает.
Читать далееИсточник: Хабрахабр
Похожие новости
- Цифровой фронтир: Почему малому бизнесу пора вспомнить опыт Napster
- gost-curl — консольный HTTP-клиент с поддержкой ГОСТ TLS 1.3
- Я год не писал код руками. Но я не вайбкодер — и это две разные профессии
- Треоко. Космос: Космическая викторина - на старт!
- Карты, деньги, облака
- Искусство Инфобеза, часть 2: NGFW, базовый минимум
- Как незаметная indirect-зависимость в Go дописала ручку в ваш HTTP-сервер
- Spark_news: Т-Банк и Colizeum запускают первый в России кэшбэк игровым временем и другие активности для геймеров
- Как научить ИИ-ассистента писать тесты и моделировать угрозы безопасности в процессе кодинга
- Аналитики: начинающие предприниматели чаще выбирают онлайн-торговлю