Если вы используете сообщение из очереди (для отображения сообщения пользователю), то по умолчанию оно удаляется из очереди (физически удаляется). Это не соответствует вашему требованию о том, что пользователь должен сначала подтвердить сообщение вручную.
Если потребитель Kafaka использует сообщение из топи c, по умолчанию смещение для этого сообщения также подтверждается как обработанное. , Сообщение все еще находится в Topi c (до тех пор, пока оно не будет удалено после того, как период хранения достигнут), но смещение передается к следующему сообщению после того, как каждое из них использовано.
Я не думаю ни о эти подходы соответствуют тому, что вы ищете. Кажется, вам нужна таблица сообщений из базы данных с:
a) столбцом, представляющим, было ли сообщение подтверждено или нет
b) FK для идентификатора пользователя (так что вы знаете, что сообщения для какого пользователя, при условии, что в вашей системе более одного пользователя)