this still isn't correct. because a transaction has multiple records, you can complete the transaction when a record is acked. you need to track and make sure all the records have been acked before completing the transaction.