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


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>We’re using clustering but probably not in a way that you’re interested in. My current project is an embedded system of between 3 and 30 nodes which are all telecomms related equipment distributed around a site and networked together. The software on each node is responsible for configuring the attached hardware, but the nodes communicate with each other to co-ordinate this.</p>
<p>We do very basic cluster formation (manually, although I’m looking at libcluster) and then use <code>:rpc.call()</code> for the comms. This required very little faff to set up, and although we’re only in the early stages of development it seems to work well for us.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="183046" 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/are-you-using-a-clustered-elixir-deployment/32988/12">Post #11</a>
	                </div>
	            </div>
              <div id="likers-container-183046" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="183046"
                     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 #11"></div>
  </section>
</div>
    <div class="postbit" id="188709" data-post-id="188709">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="benwilson512" data-post="2" data-topic="32988">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/benwilson512/48/1457_2.png" class="avatar"> benwilson512:</div>
<blockquote>
<p>We are on AWS / EKS (aws managed kubernetes) and do use clustering</p>
</blockquote>
</aside>
<p><a class="mention" href="/u/benwilson512" rel="nofollow">@benwilson512</a> Are your apps containerized? Are you running on bare metal? What are you using for clustering?</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="188709" 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/are-you-using-a-clustered-elixir-deployment/32988/13">Post #12</a>
	                </div>
	            </div>
              <div id="likers-container-188709" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="188709"
                     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 #12"></div>
  </section>
</div>
    <div class="postbit" id="188711" data-post-id="188711">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="egze" data-post="3" data-topic="32988">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/egze/48/13522_2.png" class="avatar"> egze:</div>
<blockquote>
<p>we moved almost all periodical tasks to AWS cron jobs</p>
</blockquote>
</aside>
<p><a class="mention" href="/u/egze" rel="nofollow">@egze</a> Were you experiencing issues using Elixir libraries to handle periodical tasks? If yes, would you please share?</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="188711" 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/are-you-using-a-clustered-elixir-deployment/32988/14">Post #13</a>
	                </div>
	            </div>
              <div id="likers-container-188711" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="188711"
                     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 #13"></div>
  </section>
</div>
    <div class="postbit" id="188715" data-post-id="188715">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="benwilson512" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/benwilson512/120/1457_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  benwilson512
                  </h3>
		          </div>
						
			          <div class="user-title">
									<span>Author of Craft GraphQL APIs in Elixir with Absinthe</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>They are containerized, we use libcluster’s K8s service plugin, it works great!</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="188715" 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/are-you-using-a-clustered-elixir-deployment/32988/15">Post #14</a>
	                </div>
	            </div>
              <div id="likers-container-188715" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="188715"
                     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 #14"></div>
  </section>
</div>
    <div class="postbit" id="188740" data-post-id="188740">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>No, not at all. But we decided to use existing infrastructure tools that our DevOps support.</p>
<p>It also allows us to start periodical tasks with more memory, than what is needed to run the web application.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="188740" 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/are-you-using-a-clustered-elixir-deployment/32988/16">Post #15</a>
	                </div>
	            </div>
              <div id="likers-container-188740" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="188740"
                     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 #15"></div>
  </section>
</div>
    <div class="postbit" id="188877" data-post-id="188877">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>We have a few services in Elixir</p>
<ul>
<li>All run on docker</li>
<li>All run on k8s - except one (running on vm + docker + systemd - but we will move this to k8s too <img src="https://forum.elixirforum.com/images/emoji/apple/wink.png?v=15" title=":wink:" class="emoji" alt=":wink:" loading="lazy" width="20" height="20"> )</li>
<li>We don’t use hot code reloading at all - just using k8s way.</li>
<li>Some services are using erlang cluster, while some are just independent containers.</li>
</ul>
<p>For services using erlang cluster:</p>
<ul>
<li>We use libcluster to form a cluster from k8s dns, and it works very well
<ul>
<li>A while ago, I tried to set up erlang clusters on vms across AWS EC2 instances with ansible, and it wasn’t simple.. I don’t remember the details but probably due to epmd.</li>
</ul>
</li>
<li>We need erlang clusters for global knowledge (e.g. websocket) and message passing between processes across nodes with minimal latency.. and distributed erlang is a great feat.</li>
<li>Some application uses Horde for global registry, and we have an issue on network split (<a href="https://github.com/derekkraan/horde/issues/186" rel="noopener nofollow ugc">link</a>) - but other than that it works well as it is designed.</li>
</ul>
<p>For services not using erlang cluster:</p>
<ul>
<li>To distribute async jobs - we use oban. This is our preferred choice if a service already requires postgresql. Having persistent, auditable records are often “required”.
<ul>
<li>oban also have “unique” job and cron job features - so we don’t need to build global lock or global scheduler which is very nice.</li>
</ul>
</li>
</ul>
<p>On docker:</p>
<ul>
<li>We have our own base image (compiling erlang, reusing precompiled elixir). Some codes are available at <a href="https://gitlab.com/chulkilee/docker-images" rel="noopener nofollow ugc">here</a></li>
<li>We haven’t hit any issues from erlang/elixir on docker.</li>
</ul>
<p>On k8s:</p>
<ul>
<li>k8s is not easy - lots of things to learn, CI/CD and local dev ecosystem is still evolving.. but it <strong>does</strong> make sense for certain circumstance <img src="https://forum.elixirforum.com/images/emoji/apple/slight_smile.png?v=15" title=":slight_smile:" class="emoji" alt=":slight_smile:" loading="lazy" width="20" height="20"></li>
</ul>
<hr>
<p>Please keep in mind that you don’t need erlang cluster <em>for scaling</em>. Running independent instances behind load balancer is totally fine.</p>
<p>You <strong>WILL NEED</strong> erlang cluster when you choose to use any features only available in erlang cluster for scaling. For example, I’ve seen a presentation to add global cache on the top of  database to reduce the latency.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="188877" data-batch-url="/posts/batch_likers">
                        6
                      </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/are-you-using-a-clustered-elixir-deployment/32988/17">Post #16</a>
	                </div>
	            </div>
              <div id="likers-container-188877" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="188877"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-last-post cat-last-post" title="Last post!"></div>
  </section>
</div>
</template></turbo-stream><turbo-stream action="replace" target="load-more-container"><template><div id="load-more-container" class="load-more-container">
    <span class="all-loaded">— All posts loaded —</span>
</div></template></turbo-stream>