QFM050: Elixir Reading List January 2025

Everything that I found interesting last month about the Elixir ecosystem.

Tags: qfm, elixir, reading, list, january, 2025

Source: Photo by Christian Puta on Unsplash

This month’s Elixir Reading List kicks off with an article on Background job processing, a topic that remains a core concern for Elixir developers. Ant is a lightweight alternative to existing solutions like Oban. Built on Mnesia, Ant prioritises simplicity while still supporting job persistence and retries. However, as the article notes, Mnesia’s storage model may present challenges in cloud-based deployments, requiring careful consideration of persistence strategies.

Remote’s case study on its journey from startup to unicorn exemplified scaling engineering teams and applications. The company attributes much of its success to Elixir’s reliability and scalability, which enabled it to maintain engineering efficiency while growing to nearly 300 developers. This case study provides valuable insights into how Elixir supports global-scale applications while balancing infrastructure needs.

Data evolution and schema management are tackled in Dashbit’s discussion of set-theoretic types for ensuring backward compatibility in evolving public data structures. The article presents a structured approach to managing schema changes safely, drawing parallels with Rust and other languages that emphasise type safety.

On the frontend, Phoenix Components and Atomic Design are explored as strategies for building scalable, maintainable UI systems. The use of reusable components—organised into atoms, molecules, and organisms—ensures a consistent and adaptable design system across applications, making UI development more structured and collaborative.

Telemetry and monitoring take centre stage in Gordon Guthrie’s guide on using Phoenix’s out-of-the-box telemetry features. The article covers how developers can set up custom metrics, visualise performance data, and leverage network transparency to monitor distributed applications more effectively.

AI-assisted development is also emerging as a topic of interest. A tutorial on AI-driven URL shortening showcases how ChatGPT can guide Elixir developers through building real-world applications, demonstrating how AI tools can be integrated into software development workflows.

For those interested in ETL and data processing, a guide to GenStage-powered pipelines outlines best practices for handling real-time data streams in Elixir. The article walks through implementing scalable ETL processes while leveraging Elixir’s concurrency model to maximise efficiency.

Elixir’s pattern matching capabilities are extended in a discussion on unification, a technique borrowed from logic programming. This article provides a deep dive into two-sided pattern matching, illustrating how unification can be applied in practical scenarios beyond standard pattern matching techniques.

Security also features in this month’s reading list, with Michael Lubas’ talk at ElixirConf EU 2024 outlining potential vulnerabilities in Elixir applications and strategies for mitigating them. The presentation provides actionable guidance on improving application security, reinforcing the need for ongoing vigilance in modern web applications.

As always, the Quantum Fax Machine Propellor Hat Key will guide your browsing. Enjoy! elixir-propellor-hat-key.png


right, fit

3-out-of-5-hats Introducing Ant: a Simple Background Job Processing Library for Elixir: Ant is a newly introduced library for managing background job processing in the Elixir programming environment. It is designed to be simple and easy to use, providing features such as job persistence, retrying failed jobs, and monitoring job statuses. Ant utilizes Mnesia for storing data, aiming to offer a dependency-free option for background processing while still allowing advanced configurations. Despite its ease of use, using Mnesia might present challenges in cloud environments due to the need for configuring persistent storage, and the lack of extensive resources for Mnesia compared to other solutions like Oban that utilize PostgreSQL.

#Elixir #Programming #JobProcessing #Mnesia #OpenSource


left, fit

3-out-of-5-hats Ash Weekly Launch: Ash Weekly is a new newsletter that delves into the latest developments and insights within the Ash Framework ecosystem. Curated by Zach Daniel, it offers readers a concise, weekly overview of the evolving landscape. By subscribing, users agree to standard terms and privacy policies offered by Substack.

#AshFramework #TechNews #Newsletter #WeeklyUpdate #ZachDaniel


right, fit

3-out-of-5-hats Remote: Growing from Zero to Unicorn with Elixir: Remote is a platform facilitating global employment solutions, empowering companies to hire and manage talent worldwide. Founded in 2019, it rapidly achieved unicorn status, leveraging Elixir as a core technology due to its reliability and scalability. Elixir’s functional programming model supported Remote’s engineering growth, helping maintain efficiency as they expanded to nearly 300 engineers. Infrastructure-wise, Remote operates on AWS, using a simple, effective setup to balance scalability with operational efficiency, including tools like Kubernetes and PostgreSQL. The company emphasizes team accountability and a strong onboarding process for engineers, ensuring high productivity regardless of their previous experience with Elixir.

#Elixir #RemoteWork #TechGrowth #GlobalHiring #Scalability


left, fit

4-out-of-5-hats Data evolution with set-theoretic types: This article explores data evolution challenges in programming using set-theoretic types, focusing on the Elixir programming language. The author delves into handling backward compatibility when modifying public data structures, citing issues faced with Rust libraries inter-operating with C libraries. Emphasizing structural subtyping and revisions, the article proposes solutions for evolving library schemas without causing disruptions. It also discusses how Elixir’s type system can automatically manage schema revisions, ensuring type safety and backward compatibility. The piece aims to engage the community in discussions to refine and potentially formalize these concepts moving forward.

#Elixir #DataManagement #Typesystem #BackwardCompatibility #Programming


right, fit

4-out-of-5-hats Creating a Frontend Style Guide with Phoenix Components: This article discusses the creation of a frontend style guide using Phoenix Components and Atomic Design methodology. The author focuses on improving code organization and reusability across a website by building a collection of reusable UI components called ‘atoms’, ‘molecules’, and ‘organisms’. These components help in maintaining a consistent design language across different pages and devices while improving collaboration among developers, designers, and product managers. The article highlights the use of CSS custom properties and Phoenix’s functional components in crafting these reusable pieces and shares insights on component organization and documentation strategies.

#FrontendDevelopment #WebDesign #PhoenixComponents #AtomicDesign #CSS


left, fit

4-out-of-5-hats Out-of-the-box Elixir telemetry with Phoenix: This article by Gordon Guthrie provides an in-depth look into using telemetry with the Phoenix framework in Elixir. Telemetry helps software engineers monitor system performance by collecting and displaying event data, allowing issues to be identified and addressed proactively. The guide explains how to use built-in telemetry features and set up dashboards, while also detailing how to create custom metrics for your unique application needs. Additionally, it covers the use of clustered Elixir telemetry and the benefits of network transparency in managing distributed systems.

#Elixir #PhoenixFramework #Telemetry #SoftwareEngineering #DistributedSystems


right, fit

4-out-of-5-hats AI Driven Development Series: Create an URL Shortener in Elixir: The article is a comprehensive tutorial on creating a URL shortener using Elixir, Phoenix, and LiveView, integrated with AI guidance from ChatGPT. It details various components including database setup, Phoenix context, and real-time front-end implementation, all with a strong emphasis on maintaining unique constraints and handling errors gracefully. The author provides insights into development best practices and the potential aid of AI for technical problem-solving.

#Elixir #WebDevelopment #AI #CodingTutorial #TechBlog


left, fit

3-out-of-5-hats Building Efficient ETL Pipelines with Elixir & GenStage: A Comprehensive Guide: This guide explores how Elixir, a programming language known for its concurrent task handling, paired with GenStage can efficiently manage data operations essential to data-focused projects. By walking through a real-time data processing pipeline, it highlights the use of Elixir and GenStage in creating a robust ETL system from log streams, demonstrating the transformation and loading components with multiple GenStage roles in action. Leveraging Elixir’s robust validation and concurrency features, this comprehensive resource sheds light on building scalable and resilient ETL pipelines while ensuring data consistency.

#Elixir #GenStage #ETL #DataProcessing #Concurrency


right, fit

4-out-of-5-hats Unification in Elixir: This article delves into the concept of pattern matching in Elixir, a powerful tool borrowed from its parent language Erlang and predecessor Prolog. It explains how Elixir allows one-sided pattern matching and also introduces the idea of two-sided pattern matching, known as unification. The article further guides through the implementation of unification in Elixir, demonstrating how it works to solve symbolic equations and its potential application in logic programming.

#Elixir #PatternMatching #Unification #Erlang #LogicProgramming


left, fit

3-out-of-5-hats Phoenix Analytics: Efficient Data Tracking for Phoenix Applications: Phoenix Analytics is a tool for Phoenix applications that facilitates user behavior and performance tracking with minimal impact on the main system. The tool uses DuckDB for separate analytics data storage to avoid interference with the primary database. It provides features such as lightweight tracking, easy integration, and a dashboard for visualization. While primarily designed for single-instance applications, it also supports setups without auto scaling groups using either DuckDB or Postgres.

#PhoenixAnalytics #Elixir #DataTracking #PerformanceAnalytics #TechIntegration


right, fit

3-out-of-5-hats Tower: Error Tracking for Elixir Applications: The content discusses “Tower,” a flexible error tracking and reporting tool for Elixir applications. Tower captures errors, formats them into a structural event, and allows for multiple service reporters to be configured, facilitating error management across different platforms. The system supports a variety of reporters, ensuring users can capture errors once and report them to multiple services if needed, aiding in ease of switching providers or having backups. Additionally, Tower’s design ensures it responds well to changes in Elixir or BEAM, making system updates seamless without altering configuration for error tracking.

#Elixir #ErrorTracking #SoftwareDevelopment #OpenSource #TechInnovation


left, fit

4-out-of-5-hats Parsing PDFs (and more) in Elixir using Rust: The article explores the challenges of parsing PDF files using Elixir and introduces a method to leverage Rust for better performance. By integrating Rust’s Extractous library through native implemented functions (NIFs) in Elixir, the solution offers a fast and efficient way to extract data from PDFs without relying on external services like AWS Lambda. The setup involves creating a new LiveView application in Elixir, adding Rustler and other dependencies, and writing Rust code to implement PDF extraction.

#ElixirLang #RustLang #PDFParsing #TechIntegration #Coding


right, fit

4-out-of-5-hats The Modifications I Make to Every New Phoenix Project: The article discusses modifications made to new Phoenix projects to streamline development. Key changes include using UUIDs for database keys, adding specific dependencies, and customizing schema configurations for improved microsecond precision and consistency. These adjustments are packaged into a new generator available on Hex, automating the setup for new projects.

#PhoenixFramework #Elixir #SoftwareDevelopment #Coding #TechTips


left, fit

3-out-of-5-hats The Elixir Security Roadmap by Michael Lubas: In a talk from ElixirConf EU 2024, Michael Lubas explores potential security vulnerabilities in Elixir applications and strategies to defend against them. This session covers various hacking threats and offers a roadmap to enhance security in Elixir programming, emphasizing both theoretical and practical approaches. Attendees of the conference can gain valuable insights into safeguarding their applications from potential cyber threats.

#Elixir #Security #Programming #TechConference #Cybersecurity


Regards, M@

[ED: If you’d like to sign up for this content as an email, click here to join the mailing list.]

Originally published on quantumfaxmachine.com and cross-posted on Medium.

hello@matthewsinclair.com | matthewsinclair.com | bsky.app/@matthewsinclair.com | masto.ai/@matthewsinclair | medium.com/@matthewsinclair | xitter/@matthewsinclair |

Stay up to date

Get notified when I publish something new.

Scan the QR-code to sign uo to matthewsinclair.com
Scan to sign up to matthewsinclair.com