<turbo-stream action="append" target="posts_list"><template>    <div class="postbit" id="67599" data-post-id="67599">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="liveforeverx" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/liveforeverx/120/11545_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  liveforeverx
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>It seems for me too, there is no good building block to create distributed CP system with Erlang/Elixir, like for example underling Raft-implementation for etcd allows it. Every time I was involved in building any distributed system, it had self-written implementation of Paxos/Raft or some simplified algorithm for own needs. (riak_ensemble is no except, because it is used only in riak as I know).</p>
<p>Just to note, for example etcd/raft is an building block for such applications ( for example raft of etcd is used by many more applications: <a href="https://github.com/coreos/etcd/tree/master/raft#notable-users" rel="noopener nofollow ugc">https://github.com/coreos/etcd/tree/master/raft#notable-users</a>, because of a good architecture of a library, which really allows easily embed and customise to own needs). There doesn’t exists such thing in Erlang/Elixir ecosystem at the moment, which can allow easily build systems with CP properties.</p>
<p>Probably <code>rabbitmq/ra</code> could become something like etcd/raft in Go for Erlang/Elixir. I really hope, that may be something like <code>rabbitmq/ra</code> could become defacto standard raft implementation for Erlang/Elixir ecosystem, which is battle-tested and usable to build software on top of it.</p>
<p>Than, building something like etcd to use directly inside of VM will become very easy task.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="67599" data-batch-url="/posts/batch_likers">
                        2
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/erlang-elixir-native-etcd-zookeeper-alternative/11874/22">Post #21</a>
	                </div>
	            </div>
              <div id="likers-container-67599" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="67599"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #21"></div>
  </section>
</div>
    <div class="postbit" id="67838" data-post-id="67838">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="CptnKirk" src="/assets/icons/user-9f439610.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  CptnKirk
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p><a href="https://community.hortonworks.com/articles/62667/zookeeper-sizing-and-placement-draft.html" class="onebox" target="_blank" rel="noopener nofollow ugc">https://community.hortonworks.com/articles/62667/zookeeper-sizing-and-placement-draft.html</a></p>
<p>I’m not a Zookeeper expert, however, there are a few “Productionalizing Kafka” talks that caution against slow Zookeepers.  The link above also advises that Zookeeper be given its <strong>own disk</strong> to avoid contention and multi-second delays.</p>
<p>Apparently, every piece of data that ZK acts upon is first written synchronously to a transaction log.  Transaction log writes then need to be as fast as possible or everything else slows down.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="67838" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/erlang-elixir-native-etcd-zookeeper-alternative/11874/23">Post #22</a>
	                </div>
	            </div>
              <div id="likers-container-67838" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="67838"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #22"></div>
  </section>
</div>
    <div class="postbit" id="67846" data-post-id="67846">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="andre1sk" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/andre1sk/120/1380_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  andre1sk
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>There is no need for it to be fast it is generally used to store config. data, cluster membership and to conduct leader elections it’s not used  to write the actual data</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="67846" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/erlang-elixir-native-etcd-zookeeper-alternative/11874/24">Post #23</a>
	                </div>
	            </div>
              <div id="likers-container-67846" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="67846"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #23"></div>
  </section>
</div>
    <div class="postbit" id="67852" data-post-id="67852">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="CptnKirk" src="/assets/icons/user-9f439610.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  CptnKirk
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<div class="youtube-onebox lazy-video-container" data-video-id="MhyW1FUdN8I" data-video-title="Things We Wish We Knew Before Operationalising Kafka - BigData.SG &amp; Hadoop.SG" data-video-start-time="1082" data-provider-name="youtube">
  <a href="https://www.youtube.com/watch?v=MhyW1FUdN8I&amp;t=1082" target="_blank" class="video-thumbnail" rel="noopener nofollow ugc">
    <img class="youtube-thumbnail" src="https://img.youtube.com/vi/MhyW1FUdN8I/maxresdefault.jpg" title="Things We Wish We Knew Before Operationalising Kafka - BigData.SG &amp; Hadoop.SG" width="690" height="388">
  </a>
</div>

<p>Kafka doesn’t use ZK to store the data either.  It “only” uses it for:</p>
<ul>
<li>List of brokers</li>
<li>List of topics</li>
<li>List of replicas of a topic</li>
<li>Consumer offset</li>
</ul>
<p>However, that’s potentially some rapidly changing data.  Especially the consumer offset.</p>
<p>Now imagine you have a library that is leveraging Zookeeper to track your Distributed Erlang cluster.  It might be tracking:</p>
<ul>
<li>List of nodes</li>
<li>List of processes on a node</li>
<li>State offset of each process (maybe you’re doing CQRS)</li>
<li>Replica process tracking</li>
</ul>
<p>I can see every sufficiently advanced clustering use case driving a lot of small transactions in order to coordinate distributed state, even if the state itself is held somewhere else.  Then if you also have strict ordering guarantees, I think you quickly end up with a lot of little serial disk writes.</p>
<aside class="onebox allowlistedgeneric" data-onebox-src="https://etcd.io/">
  <header class="source">
      <img src="https://etcd.io/favicons/favicon.ico" class="site-icon" alt="" width="16" height="16">

      <a href="https://etcd.io/" target="_blank" rel="noopener nofollow ugc">etcd</a>
  </header>

  <article class="onebox-body">
    

<h3><a href="https://etcd.io/" target="_blank" rel="noopener nofollow ugc">etcd</a></h3>

  <p>A distributed, reliable key-value store for the most critical data of a distributed system Learn more Quickstart What is etcd? etcd is a strongly consistent, distributed key-value store that provides a reliable way to store data that needs to be...</p>


  </article>

  <div class="onebox-metadata">
    
    
  </div>

  <div style="clear: both"></div>
</aside>

<blockquote>
<p>Fast disks are the most critical factor for etcd deployment performance and stability.</p>
</blockquote>
<p>etcd is different but same wrt wanting fast disk</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="67852" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/erlang-elixir-native-etcd-zookeeper-alternative/11874/25">Post #24</a>
	                </div>
	            </div>
              <div id="likers-container-67852" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="67852"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #24"></div>
  </section>
</div>
    <div class="postbit" id="67855" data-post-id="67855">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="andre1sk" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/andre1sk/120/1380_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  andre1sk
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="CptnKirk" data-post="25" data-topic="11874">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/letter_avatar_proxy/v4/letter/c/3e96dc/48.png" class="avatar"> CptnKirk:</div>
<blockquote>
<p>Consumer offset</p>
</blockquote>
</aside>
<p>This is can have some volume but that was true for older versions of Kafka as far as I remember newer versions no longer store Consumer offset in ZK.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="67855" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/erlang-elixir-native-etcd-zookeeper-alternative/11874/26">Post #25</a>
	                </div>
	            </div>
              <div id="likers-container-67855" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="67855"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #25"></div>
  </section>
</div>
    <div class="postbit" id="67860" data-post-id="67860">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="CptnKirk" src="/assets/icons/user-9f439610.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  CptnKirk
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="andre1sk" data-post="26" data-topic="11874">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/andre1sk/48/1380_2.png" class="avatar"> andre1sk:</div>
<blockquote>
<p>Kafka as far as I remember newer versions no longer store Consumer offset in ZK.</p>
</blockquote>
</aside>
<p>That’s good, I guess.  But not super relevant.  Of course, if you don’t actually drive ZK/etcd very hard, its performance doesn’t have as great an impact.  But any Etcd/Zookeeper alternative (or Elixir implementation) would have to plan for heavy usage.  And when that happens you end up with hard problems to solve.  For both of these products, fast disk seems to be a requirement.</p>
<p>You’re also still back to the same quandary.  These products need something special beyond what “normal” nodes are required to have.  If you melt their functionality into your app/node, then your app/node also needs to assume this specialized characteristic, in addition to whatever product level requirements your distributed nodes have.  That was all I was trying to point out in my original response.  You can pass the buck around, but it still needs to be paid by something.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="67860" data-batch-url="/posts/batch_likers">
                        2
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/erlang-elixir-native-etcd-zookeeper-alternative/11874/27">Post #26</a>
	                </div>
	            </div>
              <div id="likers-container-67860" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="67860"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #26"></div>
  </section>
</div>
    <div class="postbit" id="67861" data-post-id="67861">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="andre1sk" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/andre1sk/120/1380_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  andre1sk
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="CptnKirk" data-post="27" data-topic="11874">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/letter_avatar_proxy/v4/letter/c/3e96dc/48.png" class="avatar"> CptnKirk:</div>
<blockquote>
<p>You’re also still back to the same quandary.  These products need something special beyond what “normal” nodes are required to have.  If you melt their functionality into your app/node, then your app/node also needs to assume this specialized characteristic, in addition to whatever product level requirements your distributed nodes have.  That was all I was trying to point out in my original response.  You can pass the buck around, but it still needs to be paid by something.</p>
</blockquote>
</aside>
<p>True but I am not aware of any product that stores anything data intensive in either etcd or ZK it is generally pretty much for config and meta data. Even Kafka itself has pretty low requirements since it’s basically writing to the log sequentially and is batching writes.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="67861" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/erlang-elixir-native-etcd-zookeeper-alternative/11874/28">Post #27</a>
	                </div>
	            </div>
              <div id="likers-container-67861" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="67861"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #27"></div>
  </section>
</div>
    <div class="postbit" id="67871" data-post-id="67871">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="CptnKirk" src="/assets/icons/user-9f439610.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  CptnKirk
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>It’s not about being data intensive, it’s about being coordination intensive.  The more you have to coordinate the more coordination work you have to do.  If your use case requires the serially deterministic coordination (PC/EC) that these products say they support, then your app is at the mercy of these products before/after/maybe during the heavy lifting that its doing.</p>
<p>It’s similar to what happens to the Erlang scheduler when you sprinkle in NIFs.  If those NIFs are super fast, you’re ok.  If they aren’t, your whole system can become destabilized.</p>
<p>And this coordination load can be proportional or independent of application write volume.</p>
<p>Ask Kafka if it would rather process 10x 1MB messages a second or 5 million 1 byte messages a second.  I’m pretty sure the answer isn’t “it doesn’t matter”.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="67871" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/erlang-elixir-native-etcd-zookeeper-alternative/11874/29">Post #28</a>
	                </div>
	            </div>
              <div id="likers-container-67871" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="67871"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #28"></div>
  </section>
</div>
    <div class="postbit" id="67881" data-post-id="67881">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="andre1sk" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/andre1sk/120/1380_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  andre1sk
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="CptnKirk" data-post="29" data-topic="11874">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/letter_avatar_proxy/v4/letter/c/3e96dc/48.png" class="avatar"> CptnKirk:</div>
<blockquote>
<p>It’s not about being data intensive, it’s about being coordination intensive.  The more you have to coordinate the more coordination work you have to do.  If your use case requires the serially deterministic coordination (PC/EC) that these products say they support, then your app is at the mercy of these products before/after/maybe during the heavy lifting that its doing.</p>
</blockquote>
</aside>
<p>No argument there although I highly doubt anyone is in a hurry to put a burden on their team and try to implement RAFT or Paxos themselves vs using ZK or Etcd.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="67881" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/erlang-elixir-native-etcd-zookeeper-alternative/11874/30">Post #29</a>
	                </div>
	            </div>
              <div id="likers-container-67881" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="67881"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #29"></div>
  </section>
</div>
    <div class="postbit" id="67888" data-post-id="67888">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="CptnKirk" src="/assets/icons/user-9f439610.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  CptnKirk
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>If you want RAFT internal to your cluster, this looks pretty good:<br>
<a href="https://github.com/skirino/rafted_value" class="onebox" target="_blank" rel="noopener nofollow ugc">https://github.com/skirino/rafted_value</a></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="67888" data-batch-url="/posts/batch_likers">
                        3
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/erlang-elixir-native-etcd-zookeeper-alternative/11874/31">Post #30</a>
	                </div>
	            </div>
              <div id="likers-container-67888" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="67888"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #30"></div>
  </section>
</div>
</template></turbo-stream><turbo-stream action="replace" target="load-more-container"><template><div id="load-more-container" class="load-more-container">
    <a class="load-more-button" data-turbo-stream="true" href="/topics/11874/load_more?page=4">Load more posts (24 remaining)</a>
</div></template></turbo-stream>