When sending messages to an Apache Kafka® cluster, there may be times when a message is lost or duplicated (for example, due to a broker crash). A lost or duplicate message may, or may not, cause issues in your application. For example, in clickstream recording, it may not matter if a message is lost or sent twice. In other applications (for example, financial transaction processing), it is important to know that a message was sent once, and only once.

Note: Choosing which delivery pattern to use in your system depends on which factors you want to prioritize. Be sure you understand what Kafka actually guarantees, so that you can write your producer/consumer application correctly to get the expected behavior.