Александр
в рамках одного клиента - просто генерацией UUID, между разными клиентами никак, если клиент зависнет значит сообщение не отправит, отправит потом с тем-же или даже другим UUID, для бэкенда оно будет уникальное. Я так понял вопрос - не дублировать данные.
а почему между разными клиентами никак? Как вариант - добавлять уникальный клиентайди.