Application Code Upgrades in Elixir
In this third and final part of my series about production code upgrades in Elixir, we will look at what happens during an application upgrade. Let’s get going!
In this third and final part of my series about production code upgrades in Elixir, we will look at what happens during an application upgrade. Let’s get going!
In this world, there are many mysteries — but few are as elusive as metaprogramming in Elixir. In this four-part series, we’ll start by looking at core concepts and then explore how metaprogramming operates in Elixir specifically. Let’s develop an understanding of metaprogramming and uncover some Elixir metaprogramming secrets!
In the second part of this two-part series on testing LiveView in Elixir, we’ll write an integration test that validates interactions within a single live view, and an integration test that validates the interactions between two separate live views. You will focus on testing the behavior of the survey results chart filter from the previous post. We’ll use the LiveViewTest module’s functions to simulate LiveView connections without a browser.
In the previous chapter of this series, we looked at hot code reloading in Elixir and why we should use GenServer to implement long-running processes. But to organize a whole application, we need one more building block — supervisors. Let’s take a look at supervisors in detail.
In this two-part series, you’ll get a comprehensive overview of everything you need to know to test your LiveView applications in Elixir. In Part I, I’ll introduce you to LiveView testing guidelines and you’ll write some flexible and elegant LiveView unit tests. In Part II, you’ll write interactive LiveView tests that validate a full set of live view behaviors.
Logs are an important part of your application and logging shouldn’t be one of the last things you think of. You should configure your log system, formatter, and style as soon as you start the development of your app. Also, do your best to document the process and share how it works with the rest of your team. In this article, we’re going to demonstrate how logs work in Elixir. We’ll jump into Elixir’s Logger module, which brings a lot of power to logging features.
In today’s post, we’ll look at two Elixir HTTP client libraries: Mint and Finch. Finch is built on top of Mint. We’ll see the benefits offered by this abstraction layer. We’ll also talk about some of the existing HTTP client libraries in the ecosystem and discuss some of the things that make Mint and Finch different. Finally, we’ll put together a quick project that makes use of Finch to put all of our learning into action. Let’s jump right in!
Erlang & Elixir are ready for asynchronous work right off the bat. Generally speaking, background job systems aren’t needed as much as in other ecosystems but they still have their place for particular use cases. This post goes through a few best practices I often try to think of in advance when writing background jobs, so that I don’t hit some of the pain points that have hurt me multiple times in the past.
In today’s post, we’ll learn about Mnesia, see when you would use such a tool, and take a look at some of the pros and cons of using it. After covering the fundamentals of Mnesia, we’ll dive right into a sample application where we’ll build an Elixir application that uses Mnesia as its database. Let’s jump right in!
With a special thanks to Aleksandar and Unai, we’re happy to announce AppSignal for Elixir 1.13.0, which includes our all-new LiveView instrumentation helpers and updated typespecs. If you’re not an AppSignal user yet, make sure to check out the product tour and see how errors, performance, host metrics and triggers all come together in one tool.