<!DOCTYPE html>
<html lang="en">

  <head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1">

  <title>A Technical Review of Kafka and DistributedLog</title>
  <meta name="description" content="We open sourced DistributedLog 1 in May 2016.It generated a lot of interest in the community. One frequent question we are asked is how does DistributedLogco...">

  <link rel="stylesheet" href="/styles/site.css">
  <link rel="stylesheet" href="/css/theme.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
  <script src="/js/bootstrap.min.js"></script>
  <link rel="canonical" href="http://distributedlog.incubator.apache.org/technical-review/2016/09/19/kafka-vs-distributedlog.html" data-proofer-ignore>
  <link rel="alternate" type="application/rss+xml" title="Apache DistributedLog" href="http://distributedlog.incubator.apache.org/feed.xml">
  <script>
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');

  ga('create', 'UA-83870961-1', 'auto');
  ga('send', 'pageview');

  </script> 
  <link rel="shortcut icon" type="image/x-icon" href="/images/favicon.ico">
</head>


  <body role="document">

    <nav class="navbar navbar-default navbar-fixed-top">
  <div class="container">
    <div class="navbar-header">
      <a href="/" class="navbar-brand" >
        <img alt="Brand" style="height: 28px" src="/images/distributedlog_logo_navbar.png">
      </a>
      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
        <span class="sr-only">Toggle navigation</span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
      </button>
    </div>
    <div id="navbar" class="navbar-collapse collapse">
      <ul class="nav navbar-nav">
        <!-- Overview -->
        <li><a href="/docs/latest/basics/introduction">Overview</a></li>
        <!-- Downloads -->
        <li><a href="/docs/latest/start/download">Downloads</a></li>
        <!-- Quick Start -->
        <li class="dropdown">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Quick Start<span class="caret"></span></a>
          <ul class="dropdown-menu">
            <li><a href="/docs/latest/start/quickstart">Setup & Run Example</a></li>
            <li role="separator" class="divider"></li>
            <li class="dropdown-header">Tutorials</li>
            <li>
              <a href="/docs/latest/tutorials/main#id3">
              <small><span class="glyphicon glyphicon-pencil"></span></small>
              Basic
              </a>
            </li>
            <li>
              <a href="/docs/latest/tutorials/main#id4">
              <small><span class="glyphicon glyphicon-envelope"></span></small>
              Messaging
              </a>
            </li>
            <li>
              <a href="/docs/latest/tutorials/main#id6">
              <small><span class="glyphicon glyphicon-stats"></span></small>
              Analytics
              </a>
            </li>
          </ul>
        </li>
        <!-- Documentation -->
        <li class="dropdown">
		      <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Documentation<span class="caret"></span></a>
          <ul class="dropdown-menu">
            <li class="dropdown-header">Snapshot (Developement)</li>
            <li><a href="/docs/latest">0.6.0-SNAPSHOT</a></li>
            <li role="separator" class="divider"></li>
            <li class="dropdown-header">Releases</li>
            <li><a href="/docs/0.5.0">0.5.0</a></li>
            <li><a href="/docs/0.4.0-incubating">0.4.0-incubating</a></li>
            <li role="separator" class="divider"></li>
            <li>
              <a href="https://cwiki.apache.org/confluence/display/DL/Project+Ideas">
                <small><span class="glyphicon glyphicon-new-window"></span></small>
                Project Ideas
              </a>
            </li>
          </ul>
        </li>
        <!-- FAQ -->
        <li><a href="/faq">FAQ</a></li>
      </ul>
      <!-- Right Side -->
      <ul class="nav navbar-nav navbar-right">
        <!-- Blog -->
        <li><a href="/blog">Blog</a></li>
        <!-- Community -->
        <li class="dropdown">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Community<span class="caret"></span></a>
          <ul class="dropdown-menu">
            <li class="dropdown-header">Community</li>
            <li><a href="/community/#mailing-lists">Mailing Lists</a></li>
            <li><a href="/community/#source-code">Source Code</a></li>
            <li><a href="/community/#issue-tracker">Issue Tracking</a></li>
            <li><a href="/community/team/">Team</a></li>
            <li role="separator" class="divider"></li>
            <li class="dropdown-header">Contribute</li>
            <li><a href="https://cwiki.apache.org/confluence/display/DL/Developer+Setup">Developer Setup</a></li>
            <li><a href="https://cwiki.apache.org/confluence/display/DL/Contributing+to+DistributedLog">Contributing to DistributedLog</a></li>
            <li><a href="https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=65867477">Coding Guide</a></li>
            <li role="separator" class="divider"></li>
            <li class="dropdown-header">Guides</li>
            <li><a href="/community/release-guide">Release Guide</a></li>
          </ul>
        </li>
        <!-- Project -->
        <li class="dropdown">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Project<span class="caret"></span></a>
          <ul class="dropdown-menu">
			      <li class="dropdown-header">Project</li>
            <li><a href="/project/presentations/">Presentations</a></li>
            <li>
              <a href="https://twitter.com/distributedlog">
                <small><span class="glyphicon glyphicon-new-window"></span></small>
                Twitter
              </a>
            </li>
            <li>
              <a href="https://github.com/apache/distributedlog">
                <small><span class="glyphicon glyphicon-new-window"></span></small>
                Github
              </a>
            </li>
            <li>
              <a href="https://getdl-slack.herokuapp.com">
                <small><span class="glyphicon glyphicon-new-window"></span></small>
                Slack
              </a>
            </li>
            <li>
              <a href="https://cwiki.apache.org/confluence/display/DL/Apache+DistributedLog+Home">
                <small><span class="glyphicon glyphicon-new-window"></span></small>
                Wiki
              </a>
            </li>
          </ul>
        </li>
      </ul>
    </div><!--/.nav-collapse -->
  </div>
</nav>


<link rel="stylesheet" href="">


    <div class="container" role="main">

      <div class="row">
        

<article class="post" itemscope itemtype="http://schema.org/BlogPosting">

  <div class="col-md-8 col-md-offset-2">
    <header class="post-header">
      <h1 class="post-title" itemprop="name headline">A Technical Review of Kafka and DistributedLog</h1>
      <p class="post-meta"><time datetime="2016-09-19T10:00:00+00:00" itemprop="datePublished">Sep 19, 2016</time> •  Sijie Guo [<a href="https://twitter.com/sijieg">@sijieg</a>]
</p>
    </header>

    <div class="post-content" itemprop="articleBody">

      <p>We open sourced <a href="http://DistributedLog.io">DistributedLog</a> <sup id="fnref:distributedlog"><a href="#fn:distributedlog" class="footnote">1</a></sup> in May 2016.
It generated a lot of interest in the community. One frequent question we are asked is how does DistributedLog
compare to <a href="http://kafka.apache.org/">Apache Kafka</a> <sup id="fnref:kafka"><a href="#fn:kafka" class="footnote">2</a></sup>. Technically DistributedLog is not a full fledged partitioned
pub/sub system like Apache Kafka. DistributedLog is a replicated log stream store, using <a href="http://bookKeeper.apache.org/">Apache BookKeeper</a> <sup id="fnref:bookkeeper"><a href="#fn:bookkeeper" class="footnote">3</a></sup> as its log segment store.
It focuses on offering <em>durability</em>, <em>replication</em> and <em>strong consistency</em> as essentials for building reliable
real-time systems. One can use DistributedLog to build and experiment with different messaging models
(such as Queue, Pub/Sub).</p>

<p>Since both of them share very similar data model around <code class="highlighter-rouge">log</code>, this blog post will discuss the difference
between Apache Kafka and DistributedLog from a technical perspective. We will try our best to be objective.
However, since we are not experts in Apache Kafka, we may have made wrong assumptions about Apache Kafka.
Please do correct us if that is the case.</p>

<p>First, let’s have a quick overview of Kafka and DistributedLog.</p>

<h2 id="what-is-kafka">What is Kafka?</h2>

<p>Kafka is a distributed messaging system originally built at Linkedin and now part of <a href="http://apache.org/">Apache Software Foundation</a>.
It is a partition based pub/sub system. The key abstraction in Kafka is a topic.
A topic is partitioned into multiple partitions. Each partition is stored and replicated in multiple brokers.
Producers publish their records to partitions of a topic (round-robin or partitioned by keys), and consumers
consume the published records of that topic. Data is published to a leader broker for a partition and
replicated to follower brokers; all read requests are subsequently served by the leader broker.
The follower brokers are used for redundancy and backup in case the leader can no longer serve requests.
The left diagram in Figure 1 shows the data flow in Kafka.</p>

<h2 id="what-is-distributedlog">What is DistributedLog?</h2>

<p>Unlike Kafka, DistributedLog is not a partitioned pub/sub system. It is a replicated log stream store.
The key abstraction in DistributedLog is a continuous replicated log stream. A log stream is segmented
into multiple log segments. Each log segment is stored as
a <a href="http://bookkeeper.apache.org/docs/r4.4.0/bookkeeperOverview.html">ledger</a> <sup id="fnref:ledger"><a href="#fn:ledger" class="footnote">4</a></sup> in Apache BookKeeper,
whose data is replicated and distributed evenly across multiple bookies (a bookie is a storage node in Apache BookKeeper).
All the records of a log stream are sequenced by the owner of the log stream - a set of write proxies that
manage the ownership of log streams <sup id="fnref:corelibrary"><a href="#fn:corelibrary" class="footnote">5</a></sup>. Each of the log records appended to a log stream will
be assigned a sequence number. The readers can start reading the log stream from any provided sequence number.
The read requests will be load balanced across the storage replicas of that stream.
The right diagram in Figure 1 shows the data flow in DistributedLog.</p>

<p><img class="center-block" src="/images/blog/kafka-distributedlog-dataflow.png" alt="Kafka vs DistributedLog" width="500" /></p>
<div class="text-center">
<i>Figure 1 - Apache Kafka vs Apache DistributedLog</i>
</div>

<h2 id="how-do-kafka-and-distributedlog-differ">How do Kafka and DistributedLog differ?</h2>

<p>For an apples-to-apples comparison, we will only compare Kafka partitions with DistributedLog streams in this blog post. The table below lists the most important differences between the two systems.</p>

<table border="1px">
  <thead>
    <tr>
      <th>&nbsp;</th>
      <th><strong>Kafka</strong></th>
      <th><strong>DistributedLog</strong></th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><strong>Data Segmentation/Distribution</strong></td>
      <td>The data of a Kafka partition lives in a set of brokers; The data is segmented into log segment files locally on each broker.</td>
      <td>The data of a DL stream is segmented into multiple log segments. The log segments are evenly distributed across the storage nodes.</td>
    </tr>
  </tbody>
  <tbody>
    <tr>
      <td><strong>Data Retention</strong></td>
      <td>The data is expired after configured retention time or compacted to keep the latest values for keys.</td>
      <td>The data can be either expired after configured retention time or explicitly truncated to given positions.</td>
    </tr>
  </tbody>
  <tbody>
    <tr>
      <td><strong>Write</strong></td>
      <td>Multiple-Writers via Broker</td>
      <td>Multiple-Writers via Write Proxy; Single-Writer via Core Library</td>
    </tr>
  </tbody>
  <tbody>
    <tr>
      <td><strong>Read</strong></td>
      <td>Read from leader broker</td>
      <td>Read from any storage node which has the data</td>
    </tr>
  </tbody>
  <tbody>
    <tr>
      <td><strong>Replication</strong></td>
      <td>ISR (In-Sync-Replica) Replication - Both leader and followers are brokers.</td>
      <td>Quorum vote replication - Leaders are write proxies; Followers are bookies.</td>
    </tr>
  </tbody>
  <tbody>
    <tr>
      <td><strong>Replication Repair</strong></td>
      <td>Done by adding new replica to copy data from the leader broker.</td>
      <td>The replication repair is done by bookie AutoRecovery mechanism to ensure replication factor.</td>
    </tr>
  </tbody>
  <tbody>
    <tr>
      <td><strong>Cluster Expand</strong></td>
      <td>Need to re-distribute (balance) partition when adding new brokers. Carefully track the size of each partition and make sure rebalancing doesn’t saturate network and I/O.</td>
      <td>No data redistribution when either adding write proxies or bookies; New log segment will be automatically allocated on newly added bookies.</td>
    </tr>
  </tbody>
  <tbody>
    <tr>
      <td><strong>Storage</strong></td>
      <td>File (set of files) per partition</td>
      <td>Interleaved Storage Format</td>
    </tr>
  </tbody>
  <tbody>
    <tr>
      <td><strong>Durability</strong></td>
      <td>Only write to filesystem page cache. Configurable to either wait for acknowledgement from leader or from all replicas in ISR.</td>
      <td>All writes are persisted to disk via explicit fsync. Wait for acknowledgements from a configurable quorum of bookies.</td>
    </tr>
  </tbody>
  <tbody>
    <tr>
      <td><strong>I/O Isolation</strong></td>
      <td>No physical I/O isolation. Rely on filesystem page cache.</td>
      <td>Physical I/O isolation. Separate journal disk for write and ledger disks for reads.</td>
    </tr>
  </tbody>
</table>

<h3 id="data-model">Data Model</h3>

<p>A Kafka partition is a log stored as a (set of) file(s) in the broker’s disks.
Each record is a key/value pair (key can be omitted for round-robin publishes). 
The key is used for assigning the record to a Kafka partition and also for <a href="https://cwiki.apache.org/confluence/display/KAFKA/Log+Compaction">log compaction</a> <sup id="fnref:logcompaction"><a href="#fn:logcompaction" class="footnote">6</a></sup>.
All the data of a partition is stored only on a set of brokers, replicated from leader broker to follower brokers.</p>

<p>A DistributedLog stream is a <code class="highlighter-rouge">virtual</code> stream stored as a list of log segments.
Each log segment is stored as a BookKeeper ledger and replicated to multiple bookies.
There will be only one active log segment accepting writes at any time.
An old log segment is sealed and a new log segment will be opened when a given time period elapses,
an old log segment reaches a configured size threshold (based on configured log segment rolling policies),
or when the owner of the log stream fails.</p>

<p>The differences in data segmentation and distribution of Kafka partition and DistributedLog stream result in differences in data retention policies and cluster operations (e.g. cluster expansion).</p>

<p>Figure 2 shows the differences between DistributedLog and Kafka data model.</p>

<p><img class="center-block" src="/images/blog/kafka-distributedlog-segmentation.png" alt="Kafka Partition and DistributedLog Stream" width="500" /></p>
<div class="text-center">
<i>Figure 2 - Kafka Partition and DistributedLog Stream</i>
</div>

<h4 id="data-retention">Data Retention</h4>

<p>All the data of a Kafka partition is stored on one broker (replicated to other brokers). Data is expired and deleted after a configured retention period. Additionally, a Kafka partition can be configured to do log compaction to keep only the latest values for keys.</p>

<p>Similar to Kafka, DistributedLog also allows configuring retention periods for individual streams and expiring / deleting log segments after they are expired. Besides that, DistributedLog also provides an explicit-truncation mechanism. Application can explicitly truncate a log stream to a given position in the stream. This is important for building replicated state machines as the replicated state machines require persisting state before deleting log records.
<a href="https://blog.twitter.com/2016/strong-consistency-in-manhattan">Manhattan</a> <sup id="fnref:consistency"><a href="#fn:consistency" class="footnote">7</a></sup> is one example of a system that uses this functionality.</p>

<h4 id="operations">Operations</h4>

<p>The differences in data segmentation/distribution also result in different experiences in operating the cluster, one example is when expanding the cluster.</p>

<p>When expanding a Kafka cluster, the partitions typically need to be rebalanced. The rebalancing moves Kafka partitions around to different replicas to try to achieve an even distribution. This involves copying the entire stream data from one replica to another. It has been mentioned in several talks that rebalancing needs to be executed carefully to avoid saturating disk and network resources.</p>

<p>Expanding a DistributedLog cluster works in a very different way. DistributedLog consists of two layers: a storage layer - Apache BookKeeper, and a serving layer - the write and read proxies. When expanding the storage layer, we typically just add more bookies. The new bookies will be discovered by the writers of the log streams and will immediately be available for writing of new log segments. There is no rebalancing involved when expanding the data storage layer. Rebalancing only comes into play when adding capacity to the serving layer, however this rebalancing only moves the ownership of the log streams to allow network bandwidth to be evenly used across proxies, there is no data copying involved, only accounting of ownership. This separation of storage and serving layers not only makes it easy to integrate the system with any auto-scaling mechanism, but also allows scaling resources independently.</p>

<h3 id="writer--producer">Writer &amp; Producer</h3>

<p>As shown in Figure 1, Kafka producers write batches of records to the leader broker of a Kafka partition. The follower brokers in the <a href="https://cwiki.apache.org/confluence/display/KAFKA/Kafka+Replication">ISR (in-sync-replica) set</a> <sup id="fnref:kafkareplication"><a href="#fn:kafkareplication" class="footnote">8</a></sup> will replicate the records from the leader broker. A record is considered as committed only when the leader receives acknowledgments from all the replicas in the ISR. The producer can be configured to wait for the response from leader broker or from all brokers in the ISR.</p>

<p>There are two ways in DistributedLog to write log records to a DistributedLog stream, one is using a thin thrift client to write records through the write proxies (aka multiple-writer semantic), while the other one is using the DistributedLog core library to talk directly to the storage nodes (aka single-writer semantics). The first approach is common for building messaging systems while the second approach is common for building replicated state machines. You can check the <a href="http://bookkeeper.apache.org/distributedlog/docs/latest/user_guide/api/practice">Best Practices</a> section in DistributedLog documentation for more details about what should be used.</p>

<p>The owner of a log stream writes a batch of records as BookKeeper entries in parallel to the bookies and waits for responses from a quorum of bookies. The size of a quorum is known as the <code class="highlighter-rouge">ack_quorum_size</code> of a BookKeeper ledger and it can be configured per DistributedLog stream. It provides similar flexibility on durability as Kafka producers. We will discuss more about the differences on replication algorithms later in ‘Replication’ section.</p>

<p>Both Kafka and DistributedLog support end-to-end batching and compression. One slight difference between Kafka and DistributedLog is all the writes in DistributedLog are flushed (via fsync) to disk before acknowledging (We are not aware of Kafka providing a similar guarantee).</p>

<h3 id="reader--consumer">Reader &amp; Consumer</h3>

<p>Kafka consumers read the records from the leader broker. The assumption of this design is that the leader has all the latest data in filesystem page cache most of the time. This is a good choice to fully utilize the filesystem page cache and achieve high performance.</p>

<p>DistributedLog takes a different approach. As there is no distinguished <code class="highlighter-rouge">leadership</code> on storage nodes, DistributedLog reads the records from any of the storage nodes that store the data. In order to achieve predictable low latency, DistributedLog deploys a speculative read mechanism to retry reading from different replicas after a configured speculative read timeout. This will result in more read traffic to storage nodes than Kafka’s approach. However configuring the speculative read timeout to be around the 99th percentile of read latency can help mask the latency variabilities on the storage node with an additional 1% traffic overhead.</p>

<p>The differences in considerations and mechanisms on reads are mostly due to the differences in replication mechanism and the I/O system on storage nodes. They will be discussed below.</p>

<h3 id="replication">Replication</h3>

<p>Kafka uses an ISR replication algorithm - a broker is elected as the leader. All the writes are published to the leader broker and all the followers in a ISR set will read and replicate data from the leader. The leader maintains a high watermark (HW), which is the offset of last committed record for a partition. The high watermark is continuously propagated to the followers and is checkpointed to disk in each broker periodically for recovery. The HW is updated when all replicas in ISR successfully write the records to the filesystem (not necessarily to disk) and acknowledge back to the leader.</p>

<p>ISR mechanism allows adding and dropping replicas to achieve tradeoff between availability and performance. However the side effect of allowing adding and shrinking replica set is increased probability of <a href="https://aphyr.com/posts/293-jepsen-kafka">data loss</a><sup id="fnref:jepsen"><a href="#fn:jepsen" class="footnote">9</a></sup>.</p>

<p>DistributedLog uses a quorum-vote replication algorithm, which is typically seen in consensus algorithms like Zab, Raft and Viewstamped Replication. The owner of the log stream writes the records to all the storage nodes in parallel and waits until a configured quorum of storage nodes have acknowledged before they are considered to be committed. The storage nodes acknowledge the write requests only after the data has been persisted to disk by explicitly calling flush. The owner of the log stream also maintains the offset of last committed record for a log stream, which is known as LAC (LastAddConfirmed) in Apache BookKeeper. The LAC is piggybacked into entries (to save extra rpc calls) and continuously propagated to the storage nodes. The size of replica set in DistributedLog is configured and fixed per log segment per stream. The change of replication settings only affect the newly allocated log segments but not the old log segments.</p>

<h3 id="storage">Storage</h3>

<p>Each Kafka partition is stored as a (set of) file(s) on the broker’s disks. It achieves good performance by leveraging the filesystem page cache and I/O scheduling. It is also the way Kafka leverages Java’s sendfile api to get data in and out of brokers efficiently. However, it can potentially be exposed to unpredictabilities when page cache evictions become frequent due to various reasons (e.g. consumer falls behind, random writes/reads and such).</p>

<p>DistributedLog uses a different I/O model. Figure 3 illustrates the I/O system on the bookies (BookKeeper’s storage nodes). The three common I/O workloads - writes (blue lines), tailing-reads (red lines) and catchup-reads (purple lines) are separated into 3 physically different I/O subsystems. All the writes are sequentially appended to journal files on the journal disks and group committed to the disk. After the writes are durably persisted on the disks, they are put into a memtable and acknowledged back to the clients. The data in the memtable is asynchronously flushed into an interleaved indexed data structure: the entries are appended into entry log files and the offsets are indexed by entry ids in the ledger index files. The latest data is guaranteed to be in memtable to serve tailing reads. Catch-up reads read from the entry log files. With physical isolation, a bookie node can fully utilize the network ingress bandwidth and sequential write bandwidth on the journal disk for writes and utilize the network egress bandwidth and IOPS on multiple ledger disks for reads, without interfering with each other.</p>

<p><img class="center-block" src="/images/blog/kafka-distributedlog-bookkeeper-io.png" alt="BookKeeper I/O Isolation" width="500" /></p>
<div class="text-center">
<i>Figure 3 - BookKeeper I/O Isolation</i>
</div>

<h2 id="summary">Summary</h2>

<p>Both Kafka and DistributedLog are designed for log stream related workloads. They share some similarities but different design principles for storage and replication lead to different implementations. Hopefully this blog post clarifies the differences and address some of the questions. We are also working on  followup blog posts to explain the performance characteristics of DistributedLog.</p>

<h2 id="references">References</h2>

<div class="footnotes">
  <ol>
    <li id="fn:distributedlog">
      <p>DistributedLog Website: http://distributedLog.io <a href="#fnref:distributedlog" class="reversefootnote">&#8617;</a></p>
    </li>
    <li id="fn:kafka">
      <p>Apache Kafka Website: http://kafka.apache.org/ <a href="#fnref:kafka" class="reversefootnote">&#8617;</a></p>
    </li>
    <li id="fn:bookkeeper">
      <p>Apache BookKeeper Website: http://bookKeeper.apache.org/ <a href="#fnref:bookkeeper" class="reversefootnote">&#8617;</a></p>
    </li>
    <li id="fn:ledger">
      <p>BookKeeper Ledger: http://bookkeeper.apache.org/docs/r4.4.0/bookkeeperOverview.html <a href="#fnref:ledger" class="reversefootnote">&#8617;</a></p>
    </li>
    <li id="fn:corelibrary">
      <p>Applications can also use the core library directly to append log records. This is very useful for use cases like replicated state machines that require ordering and exclusive write semantics. <a href="#fnref:corelibrary" class="reversefootnote">&#8617;</a></p>
    </li>
    <li id="fn:logcompaction">
      <p>Kafka Log Compaction: https://cwiki.apache.org/confluence/display/KAFKA/Log+Compaction <a href="#fnref:logcompaction" class="reversefootnote">&#8617;</a></p>
    </li>
    <li id="fn:consistency">
      <p>Strong consistency in Manhattan: https://blog.twitter.com/2016/strong-consistency-in-manhattan <a href="#fnref:consistency" class="reversefootnote">&#8617;</a></p>
    </li>
    <li id="fn:kafkareplication">
      <p>Kafka Replication: https://cwiki.apache.org/confluence/display/KAFKA/Kafka+Replication <a href="#fnref:kafkareplication" class="reversefootnote">&#8617;</a></p>
    </li>
    <li id="fn:jepsen">
      <p>Jepsen: Kafka: https://aphyr.com/posts/293-jepsen-Kafka <a href="#fnref:jepsen" class="reversefootnote">&#8617;</a></p>
    </li>
  </ol>
</div>


    </div>
  </div>

</article>

      </div>


    <hr>
  <div class="row">
      <div class="col-xs-12">
          <footer>
              <p class="text-center">&copy; Copyright 2016
                  <a href="http://www.apache.org">The Apache Software Foundation.</a> All Rights Reserved.
              </p>
              <p class="text-center">
                  <a href="/feed.xml">RSS Feed</a>
              </p>
          </footer>
      </div>
  </div>
  <!-- container div end -->
</div>


  </body>

</html>
