request.required.acks and producer.mode (sync or async) are orthogonal
configs, i.e. with async mode, the producer.send() call itself will not be
blocking on acks from the servers, but its async sending thread will still
be blocked for acks, and if it fails to send out the messages due to, say,
timing out on the acks, the sender will record the failures in the metrics.

So if you want your application to be paused or directly notified upon such
sending failures you probably should use sync, if your application do not
need to be paused, but just be monitored on such failure metrics you can
use async. Which acks value to use is then based on how much you want your
message to be persistent by trading latency.

On Mon, Jul 28, 2014 at 6:32 PM, Harshvardhan Chauhan <[EMAIL PROTECTED]>
NEW: Monitor These Apps!
elasticsearch, apache solr, apache hbase, hadoop, redis, casssandra, amazon cloudwatch, mysql, memcached, apache kafka, apache zookeeper, apache storm, ubuntu, centOS, red hat, debian, puppet labs, java, senseiDB