diff --git a/TODO_Будущие_доработки.md b/TODO_Будущие_доработки.md new file mode 100644 index 0000000..4d1c541 --- /dev/null +++ b/TODO_Будущие_доработки.md @@ -0,0 +1,33 @@ +# TODO: Будущие доработки + +## 1) Полный переход на `ReceiveOutcomingMessage` +- Сейчас в UI используется `ReceiveOutcomingMessage` с fallback на `SendMessagePair`. +- Fallback нужен только временно для совместимости со старыми серверами. +- После обновления всех серверов: +- убрать вызов `SendMessagePair` из UI, +- убрать регистрацию `SendMessagePair` на сервере (оставить только `ReceiveOutcomingMessage`). + +## 2) Реальная мультисерверная доставка +- Сейчас фактически предполагается 1 сервер на пользователя. +- Нужно реализовать штатную мультисерверную схему: +- пересылка исходящих сообщений между серверами пользователя A, +- пересылка входящих сообщений между серверами пользователя B, +- дедупликация на уровне БД для затухания дублей. + +## 3) Надёжная доставка при перезапуске сервера +- Сейчас возможен сценарий: запись уже сохранена в БД, но сервер не успел переслать дальше из-за перезапуска. +- Нужно добавить механизм «store + guaranteed forward»: +- очередь/аутбокс для межсерверной пересылки, +- фоновый ретрай до подтверждения отправки, +- корректная остановка (graceful shutdown) с дожатием критичных задач. + +## 4) Политика идемпотентности +- Сохранить принцип: пара (`incoming`, `outgoing`) пишется одной транзакцией, либо обе, либо ни одной. +- Не допускать частичного состояния, при котором в БД есть только один блок пары. + +## 5) Наблюдаемость и аналитика +- Добавить метрики по доставке: +- количество дублей, +- количество успешных вставок пар, +- доля доставок в WS/push, +- количество ретраев межсерверной пересылки. diff --git a/VERSION.properties b/VERSION.properties index a9ab54b..d9abe65 100644 --- a/VERSION.properties +++ b/VERSION.properties @@ -1,2 +1,2 @@ -client.version=1.2.34 -server.version=1.2.28 +client.version=1.2.35 +server.version=1.2.29