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


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="dimitarvp" data-post="25" data-topic="76736">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/dimitarvp/48/38664_2.png" class="avatar"> dimitarvp:</div>
<blockquote>
<p>Does not CF allow you to f.ex. have a <a href="https://developers.cloudflare.com/cloudflare-for-platforms/workers-for-platforms/configuration/dynamic-dispatch/" rel="noopener nofollow ugc">Dynamic Dispatcher</a>, which is a Worker that allows you to route requests to other Workers via in-code routing and not just through URI matching? I.e. headers, secret values passed in there or form params or URL query params etc.? And then you put a Firewall / WAF protections in front of it? And that DDoS protection <a href="https://www.cloudflare.com/plans/" rel="noopener nofollow ugc">is included in all plans</a>, free included?</p>
</blockquote>
</aside>
<p>AI bots traffic is not DDoS or search bots; they are pretty much un-distinguishable from real traffic from browser traffic. If your site provide basic services to un-authenticated users, have large amount of permanent links and linked from the wider internet, they will come and they will easily consume &gt; 100k requests per day.</p>
<p>The saving grace of the AI bot traffic is that they don’t really want to overwhelm you; so they are more like constant trickles not intense bursts. So I just let them crawl.</p>
<aside class="quote no-group" data-username="dimitarvp" data-post="25" data-topic="76736">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/dimitarvp/48/38664_2.png" class="avatar"> dimitarvp:</div>
<blockquote>
<p>Where do you get a $5 VPS nowadays?</p>
</blockquote>
</aside>
<p>I do have some grandfathered plans, mainly for the privilege of outgoing port 25. You can also find some cheap providers on  <a href="https://lowendbox.com/" rel="noopener nofollow ugc">https://lowendbox.com/</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="394394" 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/how-does-elixir-keep-going/76736/32">Post #31</a>
	                </div>
	            </div>
              <div id="likers-container-394394" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="394394"
                     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 #31"></div>
  </section>
</div>
    <div class="postbit" id="394396" data-post-id="394396">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>As an Elixir dev I can’t think of a reason why I would build an app with JavaScript instead of Elixir. Nothing against JavaScript but unless it was something specific where it’s clearly a better choice, it’s something I likely wouldn’t do.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="394396" 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/how-does-elixir-keep-going/76736/33">Post #32</a>
	                </div>
	            </div>
              <div id="likers-container-394396" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="394396"
                     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 #32"></div>
  </section>
</div>
    <div class="postbit" id="394397" data-post-id="394397">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>If you are referring to Cloudflare, you can build Rust workers. That’s what I plan to do.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="394397" 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/how-does-elixir-keep-going/76736/34">Post #33</a>
	                </div>
	            </div>
              <div id="likers-container-394397" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="394397"
                     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 #33"></div>
  </section>
</div>
    <div class="postbit" id="394405" data-post-id="394405">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="sorentwo" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/sorentwo/120/37360_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  sorentwo
                  </h3>
		          </div>
						
			          <div class="user-title">
									<span>Oban Core Team</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>The title of this thread alone is misleading—it’s really “How does anything but JavaScript keep going?”, or “How does anything but CloudFlare keep going?”. The same arguments against Elixir would apply to every other ecosystem by this logic.</p>
<p>This take is puzzling to me. It’s more temping to write (or generate) JavaScript, in a fully vendor locked environment, that you can’t replicate locally, and you can’t really test against? You’re trading a system which you can replicate locally, manage, and monitor fully, for something with hidden internal complexity that’s entirely out of your control.</p>
<p>It’s the antithesis of Saša’s famous comparison table:</p>
<p></p><div class="lightbox-wrapper"><a class="lightbox" href="https://forum.elixirforum.com/uploads/default/original/3X/5/0/500e370761eede270d006e243b37f621a16d9f02.jpeg" data-download-href="https://forum.elixirforum.com/uploads/default/500e370761eede270d006e243b37f621a16d9f02" title="goto_conf_sasa_juric" rel="nofollow"><img src="https://forum.elixirforum.com/uploads/default/original/3X/5/0/500e370761eede270d006e243b37f621a16d9f02.jpeg" alt="goto_conf_sasa_juric" data-base62-sha1="bqcEuhBObxmhqpBggbnAzWQO0Zc" width="690" height="358" data-dominant-color="B2AAAB"><div class="meta"><svg class="fa d-icon d-icon-far-image svg-icon" aria-hidden="true"><use href="#far-image"></use></svg><span class="filename">goto_conf_sasa_juric</span><span class="informations">1200×624 31.2 KB</span><svg class="fa d-icon d-icon-discourse-expand svg-icon" aria-hidden="true"><use href="#discourse-expand"></use></svg></div></a></div><p></p>
<p>Lastly, as a point of anecdotal evidence: we used to host all of the Pro packages on CloudFlare workers with keys stored in KV and the tarballs in R2. Downloads for simple, tiny text files ~5kb, would routinely time out after 30 seconds because a new worker wouldn’t spin up. There was nothing we could do on our end and it consistently caused deployment problems for customers.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="394405" 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/how-does-elixir-keep-going/76736/35">Post #34</a>
	                </div>
	            </div>
              <div id="likers-container-394405" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="394405"
                     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 #34"></div>
  </section>
</div>
    <div class="postbit" id="394406" data-post-id="394406">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Thank you for providing the high quality bait needed to keep this forum alive.</p>
<p>But, if you are in earnest, what do you think will happen when cloudflare needs to increase earnings a couple of years from now?  It’s amazing how developers are continually rug pulled by these simple monopolization schemes.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="394406" 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/how-does-elixir-keep-going/76736/36">Post #35</a>
	                </div>
	            </div>
              <div id="likers-container-394406" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="394406"
                     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 #35"></div>
  </section>
</div>
    <div class="postbit" id="394419" data-post-id="394419">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Man this take is it-- the fact that he has “Server C” and the answer for these things is “Cloudflare product” doesn’t make it more attractive than Elixir/Erlang with any PaaS or host.</p>
<blockquote>
<p>Given that infra and deployment is the only real gotcha with Elixir.</p>
</blockquote>
<p>I don’t relate to this at all.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="394419" 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/how-does-elixir-keep-going/76736/37">Post #36</a>
	                </div>
	            </div>
              <div id="likers-container-394419" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="394419"
                     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 #36"></div>
  </section>
</div>
    <div class="postbit" id="394421" data-post-id="394421">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="sorentwo" data-post="35" data-topic="76736">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/sorentwo/48/37360_2.png" class="avatar"> sorentwo:</div>
<blockquote>
<p>It’s more temping to write (or generate) JavaScript, in a fully vendor locked environment, that you can’t replicate locally, and you can’t really test against?</p>
</blockquote>
</aside>
<p>I am with you and I don’t want to outsource the entire internet to Cloudflare but their <code>wrangler</code> tool includes local testing infra for most of what you’d deploy to their remote servers.</p>
<p>It’s like, I am not the biggest fan – just a curious potential user looking to try something outside of AWS and GCP – but let’s call the spade a spade.</p>
<p>(Also, you can write Rust for deploying to CF. There’s no money you can pay me to main JS and TS.)</p>
<aside class="quote no-group" data-username="sorentwo" data-post="35" data-topic="76736">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/sorentwo/48/37360_2.png" class="avatar"> sorentwo:</div>
<blockquote>
<p>Lastly, as a point of anecdotal evidence: we used to host all of the Pro packages on CloudFlare workers with keys stored in KV and the tarballs in R2. Downloads for simple, tiny text files ~5kb, would routinely time out after 30 seconds because a new worker wouldn’t spin up. There was nothing we could do on our end and it consistently caused deployment problems for customers.</p>
</blockquote>
</aside>
<p>Now that’s the actual info I am here to read. Thank you! Discouraging, have to say, but valuable to know.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="394421" 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/how-does-elixir-keep-going/76736/38">Post #37</a>
	                </div>
	            </div>
              <div id="likers-container-394421" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="394421"
                     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 #37"></div>
  </section>
</div>
    <div class="postbit" id="394422" data-post-id="394422">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group quote-modified" data-username="jsonbecker" data-post="37" data-topic="76736">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/jsonbecker/48/26587_2.png" class="avatar"> jsonbecker:</div>
<blockquote>
<blockquote>
<p>Given that infra and deployment is the only real gotcha with Elixir.</p>
</blockquote>
<p>I don’t relate to this at all.</p>
</blockquote>
</aside>
<p>Same. I found Elixir to be one of the easiest technologies ever for deployment out of the 8+ PLs and 10+ ecosystems I’ve tried in earnest, and I suffered through the early days of Rails’ Capistrano and manually crafting the whole thing from scratch.</p>
<p>Rust and Golang (and all PLs with <em>mostly</em> statically linked final binaries) are of course very difficult to beat, but since BEAM releases became a thing, the statically linked binaries are not the undisputed kings of the hill anymore.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="394422" 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/how-does-elixir-keep-going/76736/39">Post #38</a>
	                </div>
	            </div>
              <div id="likers-container-394422" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="394422"
                     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>