title: Using many consumers in SQS Queue
body: <p>I know that it is possible to consume a SQS queue using multiple threads. I would like to guarantee that each message will be consumed once. I know that it is possible to change the visibility timeout of a message, e.g., equal to my processing time. If my process spend more time than the visibility timeout (e.g. a slow connection) other thread can consume the same message.</p>
  
  <p>What is the best approach to guarantee that a message will be  processed once?</p>