Я самопальный клиент делал так(псевдокод)
batch = client.ReceiveBatch
try
domain.DoBusiness batch
client.Commit
catch UnexpectedException
log
то есть если логика не кидала эксепшнов (а у меня эксепшны это чот исключительное), то все ок, комитим. Иначе мы в лупе чтения очереди еще раз батч прочитаем
Ayrat
Vagif
Ilya
Romɑn
Kirill
Anatoly
Ilya
Viacheslav
Крылатый