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


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<blockquote>
<p>Hmm that article states that Cachex is only a local cache but it supports distributed caching as well</p>
</blockquote>
<p>Yeah, good catch, apparently since v3.1 supports distributed features. But overall, the main argument is not only about if the cache is distributed or not. The existing libraries are particular cache implementations, not a caching framework which is what Nebulex aims to be, be able to craft different caching topologies and patterns using different cache stores. But all these things are covered in the blog post.</p>
<blockquote>
<p>It’s not super featureful, like I don’t know if it’s pluggable, but it supports cross BEAM node cache storage via sharding, so Nebulex is more capable if you have an external store</p>
</blockquote>
<p>Well, I’m not sure what you meant, but Nebulex supports distributed caching by means of its distributed build-in adapter (among others) which implementing sharding (under-the-hood). Therefore, it is not necessary an external store, it is optional, and that’s the point, Nebulex doesn’t depend on an external store or any other particular cache implementation. The idea is that you can setup the adapters you need and deploy the topologies you require for your specific use case. For example, a multilevel topology where the L1 is the local cache using the built-in local adapter or even Cachex (in the roadmap there is an adapter for cachex), the L2 could be a distributed cache (using the built-in adapter), the L3 could be an external store like Redis, and so on and so forth.</p>
<blockquote>
<p>I wonder how they benchmark, I’d love to see both tested with their full feature sets</p>
</blockquote>
<p>Yeah, both Nebulex built-in adapters and Caches have benchmarks, you can run those benchmarks on each project and compare. But again, that’s not the point, it doesn’t matter which one is faster. The purpose of Nebulex is not to be faster than Cachex or any other cache, actually they complement each other, Cachex is a amazing cache library, and you can use it with Nebulex as well. The idea of Nebulex is to provide a caching framework you can play with, craft your own caches using the implementations you want, etc.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="105770" 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/elixir-blog-posts/150/419">Post #418</a>
	                </div>
	            </div>
              <div id="likers-container-105770" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="105770"
                     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 #418"></div>
  </section>
</div>
    <div class="postbit" id="105772" data-post-id="105772">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="cabol" data-post="419" data-topic="150">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/cabol/48/11350_2.png" class="avatar"> cabol:</div>
<blockquote>
<p>Yeah, good catch, apparently since v3.1 supports distributed features. But overall, the main argument is not only about if the cache is distributed or not. The existing libraries are particular cache implementations, not a caching framework which is what Nebulex aims to be, be able to craft different caching topologies and patterns using different cache stores. But all these things are covered in the blog post.</p>
</blockquote>
</aside>
<p>Yep, that’s what I went on to say, Cachex’s version is not super featureful so if someone needed more detailed setup like pluggable implementations or so then Nebulex is better to use.  <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"></p>
<aside class="quote no-group" data-username="cabol" data-post="419" data-topic="150">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/cabol/48/11350_2.png" class="avatar"> cabol:</div>
<blockquote>
<p>Well, I’m not sure what you meant, but Nebulex supports distributed caching by means of its distributed build-in adapter (among others) which implementing sharding (under-the-hood). Therefore, it is not necessary an external store, it is optional, and that’s the point, Nebulex doesn’t depend on an external store or any other particular cache implementation. The idea is that you can setup the adapters you need and deploy the topologies you require for your specific use case. For example, a multilevel topology where the L1 is the local cache using the built-in local adapter or even Cachex (in the roadmap there is an adapter for cachex), the L2 could be a distributed cache (using the built-in adapter), the L3 could be an external store like Redis, and so on and so forth.</p>
</blockquote>
</aside>
<p>Precisely, that’s what I was summarizing, that Nebulex is better to use especially in such scenarios.  I am curious if it can handle transactional support though, I didn’t see it mentioned in the post.  Like with Cachex you can access and store cached entries in bulk so no worry about out of sync issues (though it has issues doing that distributed, transactions are basically disabled then unless very specifically used).</p>
<aside class="quote no-group" data-username="cabol" data-post="419" data-topic="150">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/cabol/48/11350_2.png" class="avatar"> cabol:</div>
<blockquote>
<p>Yeah, both Nebulex built-in adapters and Caches have benchmarks, you can run those benchmarks on each project and compare. But again, that’s not the point, it doesn’t matter which one is faster. The purpose of Nebulex is not to be faster than Cachex or any other cache, actually they complement each other, Cachex is a amazing cache library, and you can use it with Nebulex as well. The idea of Nebulex is to provide a caching framework you can play with, craft your own caches using the implementations you want, etc.</p>
</blockquote>
</aside>
<p>I was actually just thinking that I wonder if Cachex could switch to using Nebulex as a backend for its distributed cache.  ^.^</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="105772" 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/elixir-blog-posts/150/420">Post #419</a>
	                </div>
	            </div>
              <div id="likers-container-105772" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="105772"
                     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 #419"></div>
  </section>
</div>
    <div class="postbit" id="105779" data-post-id="105779">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<blockquote>
<p>I am curious if it can handle transactional support though, I didn’t see it mentioned in the post</p>
</blockquote>
<p>Yes, Nebulex supports transactions as well (Erlang <code>:global</code> library is used under-the-hood). You can find more detailed info in the <a href="https://github.com/cabol/nebulex" rel="noopener nofollow ugc">Nebulex Repo</a>. Anyways I will write more about transactions, this is a very tricky  feature and controversial topic that worth to be explained better <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"></p>
<blockquote>
<p>I was actually just thinking that I wonder if Cachex could switch to using Nebulex as a backend for its distributed cache. ^.^</p>
</blockquote>
<p>I think it might be possible, but the other option is to use Cachex from Nebulex, and that’s where the Cachex adapter comes in. But use Nebulex from Cachex sounds also interesting.</p>
<p>Thanks for your thoughts <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">  !!!</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="105779" 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/elixir-blog-posts/150/421">Post #420</a>
	                </div>
	            </div>
              <div id="likers-container-105779" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="105779"
                     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 #420"></div>
  </section>
</div>
    <div class="postbit" id="107747" data-post-id="107747">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Plataformatec’s recap of their year with Elixir:</p>
<aside class="onebox allowlistedgeneric" data-onebox-src="https://blog.plataformatec.com.br/2018/12/plataformatec-and-elixir-2018-in-review/">
  <header class="source">
      <img src="https://forum.elixirforum.com/uploads/default/original/2X/9/960d9f8b092676c28aae5a89ec6f9d1c09a3a086.png" class="site-icon" alt="" data-dominant-color="155872" width="192" height="192">

      <a href="https://blog.plataformatec.com.br/2018/12/plataformatec-and-elixir-2018-in-review/" target="_blank" rel="noopener nofollow" title="12:20PM - 12 December 2018">Plataformatec Blog | Plataformatec's place to talk about Ruby, Ruby on Rails,... – 12 Dec 18</a>
  </header>

  <article class="onebox-body">
    

<h3><a href="https://blog.plataformatec.com.br/2018/12/plataformatec-and-elixir-2018-in-review/" target="_blank" rel="noopener nofollow">Plataformatec and Elixir: 2018 in review « Plataformatec Blog</a></h3>

  <p>As the company behind Elixir, Plataformatec has been involved with Elixir since its conception through José Valim, Elixir's creator, co-founder and Director of R&amp;D at Plataformatec. This year we set up a new challenge for us: we would like to...</p>


  </article>

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

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

<p>Thank you José and everyone at Plataformatec for everything you do with Elixir <img src="https://forum.elixirforum.com/images/emoji/apple/purple_heart.png?v=15" title=":purple_heart:" class="emoji" alt=":purple_heart:" loading="lazy" width="20" height="20"></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="107747" data-batch-url="/posts/batch_likers">
                        4
                      </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/elixir-blog-posts/150/422">Post #421</a>
	                </div>
	            </div>
              <div id="likers-container-107747" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="107747"
                     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 #421"></div>
  </section>
</div>
    <div class="postbit" id="108177" data-post-id="108177">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Elixir and Erlang Ecosystem? <a href="https://link.medium.com/74U1RILJFS" rel="noopener nofollow ugc">https://link.medium.com/74U1RILJFS</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="108177" 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/elixir-blog-posts/150/423">Post #422</a>
	                </div>
	            </div>
              <div id="likers-container-108177" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="108177"
                     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 #422"></div>
  </section>
</div>
    <div class="postbit" id="108616" data-post-id="108616">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Best practices for integrating with third party libraries<br>
<a href="https://www.jackmarchant.com/articles/integrating-third-party-libraries-in-elixir" class="onebox" target="_blank" rel="noopener nofollow ugc">https://www.jackmarchant.com/articles/integrating-third-party-libraries-in-elixir</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="108616" 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/elixir-blog-posts/150/424">Post #423</a>
	                </div>
	            </div>
              <div id="likers-container-108616" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="108616"
                     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 #423"></div>
  </section>
</div>
    <div class="postbit" id="109483" data-post-id="109483">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p><a href="https://www.poeticoding.com/counting-realtime-trades/" rel="noopener nofollow ugc">Counting Real-Time Trades</a></p>
<p>In the <a href="https://www.poeticoding.com/realtime-market-data-updates-with-elixir/" rel="noopener nofollow ugc">Real-time Market-Data Updates with Elixir</a> article, we have seen how to build a Coinbase WebSocket client and receive real-time trades. A reader asked how many trades we receive per second. In general, the rate of trades depends on the product and the time of day.<br>
In this article we start to see how to aggregate these trades in real-time, using the GenServer behaviour. We’ll build an aggregation process that groups and count the trades.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="109483" data-batch-url="/posts/batch_likers">
                        5
                      </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/elixir-blog-posts/150/425">Post #424</a>
	                </div>
	            </div>
              <div id="likers-container-109483" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="109483"
                     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 #424"></div>
  </section>
</div>
    <div class="postbit" id="109525" data-post-id="109525">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<blockquote>
<p>Friends, I am now at least in this respect a rare breed: an Elixir programmer who has never written Ruby.</p>
<p>I was never a professional Erlang programmer. I cut my teeth on Python and began working in Python, but Erlang was the language I learned after that and the one that I looked for excuses to write in (in addition to <a href="https://nim-lang.org/" rel="noopener nofollow ugc">Nim</a>, which would come a little later, but which I would also be able to finagle into production at MakeSpace).</p>
<p>So here was my impression of Elixir for the first several years of my passing acquaintance with it: it’s Erlang with Ruby syntax. I had never ended up writing any Ruby, and I was already happy with Erlang and its syntax. So I had a fairly simplistic understanding of the Elixir language and the roots of its popularity and it didn’t seem that there was anything of value to me.</p>
</blockquote>
<aside class="onebox allowlistedgeneric" data-onebox-src="https://blog.zdsmith.com/posts/sketches-of-elixir.html">
  <header class="source">

      <a href="https://blog.zdsmith.com/posts/sketches-of-elixir.html" target="_blank" rel="noopener nofollow ugc">blog.zdsmith.com</a>
  </header>

  <article class="onebox-body">
    

<h3><a href="https://blog.zdsmith.com/posts/sketches-of-elixir.html" target="_blank" rel="noopener nofollow ugc">Subset Park: Sketches of Elixir</a></h3>

  <p>Sketches of Elixir : Friends, I am now at least in this respect a rare breed: an Elixir programmer who has never written Ruby. I was never a professional Erlang programmer. I cut my teeth on Python</p>


  </article>

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

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

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="109525" data-batch-url="/posts/batch_likers">
                        5
                      </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/elixir-blog-posts/150/426">Post #425</a>
	                </div>
	            </div>
              <div id="likers-container-109525" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="109525"
                     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 #425"></div>
  </section>
</div>
    <div class="postbit" id="110036" data-post-id="110036">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p><a class="mention" href="/u/sfusato" rel="nofollow">@sfusato</a> Hey another Erlanger!</p>
<p>A note:</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">iex(3)&gt; [x, y, z: true] == [x, y, {:z, true}]
true
</code></pre>
<p>You put <code>[x, y, [{:z, :true}]]</code>, which is:</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">iex(4)&gt; [x, y, z: true] == [x, y, [{:z, :true}]]
false
</code></pre>
<p><img src="https://forum.elixirforum.com/images/emoji/apple/slight_smile.png?v=15" title=":slight_smile:" class="emoji only-emoji" alt=":slight_smile:" loading="lazy" width="20" height="20"></p>
<p>Also on Streams, those aren’t an Elixir’y thing, they are just repeated function application underneath, trivial to do in Erlang as well.  Structs are just maps.  Etc…</p>
<p>However the quintessential Elixir’y bits of Elixir are Macro’s.  The tooling built up around Elixir works for Erlang as well (except using the ASN.1 compiler in erlang, that’s still borked in Elixir…), you could implement protocols in Erlang the same as you could in Elixir (In fact my ProtocolEx library could even use a ProtocolEx or implementations defined in Erlang as long as a couple specially named named functions with appropriate returns are defined).</p>
<p>But the one thing that is horribly hard to port back to Erlang are Macros.  Sure Parse Transforms give you the power, but not the succinctness, and there are parse transforms that add AST quoteing and compile-time calls, but it never gets as succinct as Elixir macros.  Macros is what elevates Elixir from just a beam language to a more Lisp’y language without the parenthesis (though if you like the parenthesis look at lfe, it’s an awesome beam language as well!).  <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"></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="110036" data-batch-url="/posts/batch_likers">
                        4
                      </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/elixir-blog-posts/150/427">Post #426</a>
	                </div>
	            </div>
              <div id="likers-container-110036" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="110036"
                     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 #426"></div>
  </section>
</div>
    <div class="postbit" id="110815" data-post-id="110815">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Hey everyone! Happy new year!</p>
<p><a href="https://www.poeticoding.com/processing-large-csv-files-with-elixir-streams/?utm_source=elixirforum&amp;utm_medium=elixirforum_149" rel="noopener nofollow ugc">Processing Large CSV files with Elixir Streams</a></p>
<p>In this article I introduce Elixir Streams as a powerful and elegant way to process large CSV files. I compare the greedy and the lazy approach with some memory and cpu benchmarking.</p>
<p>As always, any feedback is really appreciated! <img src="https://forum.elixirforum.com/images/emoji/apple/smiley.png?v=15" title=":smiley:" class="emoji" alt=":smiley:" loading="lazy" width="20" height="20"></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="110815" data-batch-url="/posts/batch_likers">
                        4
                      </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/elixir-blog-posts/150/428">Post #427</a>
	                </div>
	            </div>
              <div id="likers-container-110815" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="110815"
                     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 #427"></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/150/load_more?page=40">Load more posts (831 remaining)</a>
</div></template></turbo-stream>