I will send a more detail email later, some quick comments:
1. It's unlikely that defaults will suit everyone. I think the question is:
what is the most likely configuration for a typical Kafka user _today_?
Kafka's usage is growing well beyond its original use cases and correctness
is often more important than achieving the maximum possible performance.
Large scale users have the time, knowledge and resources to tweak settings
so that they can achieve the latter. 1.0.0 is a good time to be thinking
2. This KIP focuses on producer configs. A few people (in the discussion
thread and offline) have asked whether the default min.insync.replicas
should be changed as well. I think that's a fair question and we should
address it in the KIP.
3. It is true that the current configs are generally too complicated. The
notion of "profiles" has been raised previously where one could state their
intent and the configs would be set to match. Becket suggested a semantics
config (exactly_once, at_most_once, at_least_once), which is similar to an
existing Kafka Streams config. The user could also specify if they would
like to optimise for latency or throughput, for example (this has been
raised before). I think we should pursue these ideas in a separate KIP.
One comment inline.
On Sat, Aug 12, 2017 at 1:26 AM, Becket Qin <becket....@gmail.com> wrote:
> From users' perspective, when idempotence=true and
> max.in.flight.requests.per.connection > 0, ideally what acks=1 should
> really mean is that "as long as there is no hardware failure, my message is
> sent exactly once".
I don't understand this statement. Hardware failures are common and we
should be striving for defaults that work correctly under failure.