title: Guaranteeing delivery with clustered Kafka
body: <p>According to a recent article, Kafka can drop acknowledged messages under a replicated configuration:</p>
  
  <p><a href="https://aphyr.com/posts/293-call-me-maybe-kafka" rel="nofollow">https://aphyr.com/posts/293-call-me-maybe-kafka</a></p>
  
  <p>In case one must be absolutely certain that a message was delivered to a consumer, will this solution work in every case:</p>
  
  <ul>
  <li>establishing two topics, one for sending, one for receiving</li>
  <li>producer sends a message, including a token (an UUID) on the sending topic</li>
  <li>producer saves the sent message and the token to local storage, independently from Kafka</li>
  <li>producer erases the sent message from local storage only when it receives a confirmation message from the consumer on the receiving topic, containing the same token that was sent on the sending topic.</li>
  <li>producer resends message periodically, with the same token, until it receives a confirmation. The unique token ensures that even if the message is received twice (the first being not confirmed for any reason) it is identified as duplicate by the consumer.</li>
  </ul>
  
  <p>Does it work even in case of dropped messages? Is there a name for this pattern?</p>