Too Long; Didn't Read
In this article, we're going to talk about how to provide guaranteed messages sending for producers. Simple transactions cannot cover the problem, but distributed transactions are expensive. Idempotency helps with scheduled jobs. An additional table in DB makes the application less overloaded.