эм. ну ответ может и не обязателен, а вот гарантия обработки и прочее - для этого существует куча механизмов, к примеру acknowlege
Код, который отправил сообщение, ничего не знает об ack. Значит, ему всё равно. Система должна работать независимо от того, когда будет обработано сообщение (длина очереди и скорость обработки непредсказуемы). Если для источника и системы в общем состояние очереди не имеет значения, значит и сами сообщения не должны иметь. Обёртки - это попытка из очереди сделать базу или state machine. Возможно, на меня влияет контекст обсуждения RabbitMQ, про Kafka я бы такое не сказал, наверное.