LINUX.ORG.RU

История изменений

Исправление KivApple, (текущая версия) :

Сервер может выдавать юзеру UUID последней отправленной им мессаги в каждый чат. Ну и ещё надеятся на то, что сервер успеет удалить черновик, пока сообщение юзера уползёт вверх (когда бекэнд получает команду на отправку сообщения, он после вставки сообщения в MESSAGES, удаляет его из DRAFTS, даже если это не одна транзакция, в любом случае между двумя операциями пройдут секунды, а на случай краша бекэнда можно предусмотреть очередь операций, которая обеспечит ретрай удаления).

А вообще у меня есть ощущение, что ты просто придумываешь себе проблемы. Используй БД с транзакциями (не вижу смысла шардить по таблицам, а не по юзерам или чатам, например) или накостыль транзакции поверх.

Исправление KivApple, :

Сервер может выдавать юзеру UUID последней отправленной им мессаги в каждый чат. Ну и ещё надеятся на то, что сервер успеет удалить черновик, пока сообщение юзера уползёт вверх (когда бекэнд получает команду на отправку сообщения, он после вставки сообщения в MESSAGES, удаляет его из DRAFTS, даже если это не одна транзакция, в любом случае между двумя операциями пройдут секунды, а на случай краша бекэнда можно предусмотреть очередь операций, которая обеспечит ретрай удаления).

А вообще у меня есть ощущение, что ты просто придумываешь себе проблемы. Используй БД с транзакциями (не вижу смысла шардить по таблицам, а не по юзерам, например) или накостыль транзакции поверх.

Исходная версия KivApple, :

Сервер может выдавать юзеру UUID последней отправленной им мессаги в каждый чат. Ну и ещё надеятся на то, что сервер успеет удалить черновик, пока сообщение юзера уползёт вверх (когда бекэнд получает команду на отправку сообщения, он после вставки сообщения в MESSAGES, удаляет его из DRAFTS, даже если это не одна транзакция, в любом случае между двумя операциями пройдут секунды, а на случай краша бекэнда можно предусмотреть очередь операций, которая обеспечит ретрай удаления).