<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Elixir on StackDelight</title><link>https://stackdelight.com/tags/elixir/</link><description>Recent content in Elixir on StackDelight</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Fri, 18 Jul 2025 15:01:35 +0300</lastBuildDate><atom:link href="https://stackdelight.com/tags/elixir/index.xml" rel="self" type="application/rss+xml"/><item><title>Building Distributed Cache With Elixir</title><link>https://stackdelight.com/posts/building-distributed-cache-with-just-elixir/</link><pubDate>Fri, 18 Jul 2025 15:01:35 +0300</pubDate><guid>https://stackdelight.com/posts/building-distributed-cache-with-just-elixir/</guid><description>&lt;p>A distributed cache is one that spans multiple nodes. Data is stored (and possibly replicated) across the nodes, providing certain guarantees about availability and consistency. If you&amp;rsquo;re interested in learning more real-life use cases, read the excellent &lt;a href="https://www.allthingsdistributed.com/files/amazon-dynamo-sosp2007.pdf">Dynamo paper from AWS&lt;/a> - &lt;em>the&lt;/em> paper for distributed KV-stores.&lt;/p>
&lt;div class="callout tip ">
 This article was inspired by Johanna Larsson&amp;rsquo;s &lt;a href="https://www.youtube.com/watch?v=7yU9mvwZKoY&amp;amp;t=1615s">keynote about distributed KV-stores&lt;/a>, most recently given at ElixirConf EU 2025.
&lt;/div>

&lt;h2 id="simple-genserver">Simple GenServer&lt;/h2>
&lt;p>GenServer, an OTP generic behaviour for building request-response interactions, will be our starting point. It&amp;rsquo;s a single-threaded server with a message box of incoming requests. Our data will be stored in a plain map, and we&amp;rsquo;ll define just the operations for getting and setting a key-value pair:&lt;/p></description></item><item><title>Ingesting SQS Messages With GenStage</title><link>https://stackdelight.com/posts/ingesting-sqs-messages-in-genstage-pipeline/</link><pubDate>Mon, 02 Jun 2025 15:04:35 +0300</pubDate><guid>https://stackdelight.com/posts/ingesting-sqs-messages-in-genstage-pipeline/</guid><description>&lt;p>Message processing is ubiqutous in many modern applications - whether it&amp;rsquo;s motivated by an &lt;a href="https://martinfowler.com/articles/microservice-trade-offs.html#consistency">eventually consistent&lt;/a> architecture, ingestion of events from external systems or IoT devices.&lt;/p>
&lt;p>Much like with request-based traffic, our application needs to be able to scale with the volume of incoming messages. As the amount of work that needs to be done grows, there is an increasing chance of hitting a limit of our CPU/memory resources. Horizontal scaling is one solution, especially if available out of the box on Kubernetes or other PaaS offering.&lt;/p></description></item><item><title>Lambda Runtime For Your Elixir Application</title><link>https://stackdelight.com/posts/lambda-runtime-for-your-elixir-application/</link><pubDate>Tue, 20 May 2025 15:03:35 +0300</pubDate><guid>https://stackdelight.com/posts/lambda-runtime-for-your-elixir-application/</guid><description>&lt;div class="callout warning ">
 This article is still work-in-progress.
&lt;/div></description></item></channel></rss>