In this talk I go over the basic theory of messaging in distributed systems, the different message delivery guarantees in Kafka and the to use them. I focus on exactly once delivery guarantees and the way Kafka implements it with transaction based messaging protocol. Including a discussion of the latency/throughput trade-offs, resource utilisation and its overall advantages and shortcomings. Finally, I show a use-case at Wix where exactly once delivery helped us solve a big problem.