More notable differences from Kafka as far as log replication protocol
is concerned -

- Raft considers log entries as committed as soon as it is
acknowledged by a majority of the servers in a cluster. Compare this
to Kafka where we have the notion of "in-sync followers" that are
required to ack every batch of log entries in order for the leader to
commit those.

- Raft uses the election voting mechanism to select a new  leader
whose log is as “up-to-date” as possible. Compare this to Kafka where
we can pick ANY of the "in-sync followers" as the next leader, we
typically pick the first one in the list. We do not try to pick the
"in-sync follower" with the largest log for simplicity and fewer RPCs.

- In Raft, when the follower's log diverts from the leader's (in the
presence of multiple failures), the leader-follower RPC truncates the
follower's log up to the diversion point and then replicate the rest
of the leader's log. This ensures that follower's log is identical to
that of the leader's in such situations. Compare this to Kafka, where
we allow the logs to divert and don't reconcile perfectly.


On Sun, Apr 14, 2013 at 9:42 PM, Jun Rao <[EMAIL PROTECTED]> wrote:

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