Should you use database transactions for data consistency?

In our systems, most business actions require changes across multiple contexts. How can we keep these contexts consistent?

Blog post: "More than one thing at a time"

Wrote about performance and about tech stacks and their potentials. Mostly Elixir versus other popular high-level runtimes (Python, Ruby, Node.js).

Simple Phoenix LiveView App: Fonts, logos and sass

Part 9 of the Simple Phoenix LiveView App series

It covers setting up SASS, custom fonts and logos

ElixirWeekly: The Elixir Community Newsletter, covering community news you easily miss, shared on ElixirStatus and the web, in one email every Thursday.

ElixirMix Podcast 096: Sharing Protobuf Schemas with Andrea Leopardi

In this episode of ElixirMix, we talk with Andrea Leopardi about how they solved sharing Protobuf protocols across multiple projects for their RabbitMQ consumers. We also learn the benefits they found of using Elixir in a microservices architecture, the benefits they got from Broadway and much more!

Podcast Episode

Fetch web pages and all assets with Dust

Introducing Dust it allows you to fetch web pages with all assets and embed in a single HTML file



Inspired by but different.

It is still under development.

gen_rmq 3.0.0 version release

GenRMQ is a set of behaviours meant to be used to create RabbitMQ consumers and publishers.


  • Custom deadletter exchange type
  • Updated telemetry events
  • Bump amqp from 1.2.1 to 1.4.2
  • Bump min supported elixir version to 1.8
  • Task Supervisor for message consumers

It is a major release, which contains non-backward compatible changes. Please check how to migrate to version 3.0.0 from older versions:

Kudos to @akoutmos, @Shemeikka, @spier, and @vorce for making it possible.

Simple Phoenix LiveView App: Upgrade LiveView to v0.8.1

Part 8 of the Simple Phoenix LiveView App series.

It covers upgrading LiveView from v0.4.1 to v0.8.1.

Ecto embeds have IDs by default

While working with JSONB and Ecto I found out that even a single embed have an ID by default (as far as Ecto is concerned).

Elixir Berlin Meetup June Remote Edition

“I used mix built-in releases and you won’t believe what happened next” by Guilherme

“APA : Arbitrary Precision Arithmetic - pure Elixir implementation” by Ralph

Shameless plug: Check out @elixirstatus' other community project:

Credo, a new static code analysis tool that acts as a code linter, but also focusses on teaching coding practices and code consistency.

Uncomfortable question 001 (spoiler: how I met Elixir & Erlang)

What would you do if you find a tool with significantly more features than the one you are already comfortable working with?

spoiler: I tell how I met Elixir & Erlang, and how it changed my goals :)

Oban 2.0 and the Introduction of Oban Web+Pro

Announcing the Oban 2.0 release and the future of sustaining Oban with Web and the new Pro package.

The Repository Pattern, Ecto, and Database-less Testing

Ever wanted to learn more about Ecto, it’s internals and how to leverage the repository pattern more effectively in your application? Check out my latest post

Elixir Wizards S4E4 Ben Marx on the Launch and Architecture of SubSpace

Check your podcast feed for the latest episode of the Elixir Wizards podcast or listen to the episode here:

And listen to Pattern Matching with Todd here:

Trying To Speed Up Compilation With Absinthe

I run my tests a lot when I’m working, and nothing bums me out more when I’m running my tests so frequently than long compile times before I can even run my tests. One of the unfortunate issues with absinthe is that it’s a very macro-heavy library, and as such it effectively touches every file in your application, meaning that you need to recompile a ton of files if you’re using it. But there may be ways we can avoid such long incremental compile times!

Sorting by multiple criterias in Elixir

How to sort enums by multiple criterias in Elixir

Correios CEP 0.5.1 released! Deprecate zipcode field.

Correios CEP allows to find Brazilian addresses by postal code, directly from Correios API. No HTML parsers.


Correios.CEP.Address.zipcode is deprecated. Use Correios.CEP.Address.postal_code instead.

The version 0.5.1 introduces the field postal_code in Correios.CEP.Address struct with the same value of zipcode field. In the version 0.6.0 the zipcode field will be removed.

Changelog for version 0.5.1:


  • The field postal_code in Correios.CEP.Address with the same value of zipcode field, that will be deprecated in the next version. Part of the Issue #17.

Check it out at:

Retrieving results from cursor-paginated endpoints in Elixir

Have you ever wanted to retrieve all the results from a certain API endpoint but only received part of them?😕😢 Here’s our approach on how to deal with cursor-based pagination in Elixir⚗️

Adding Tailwind CSS to a Phoenix project

After the initial setup of my learning project, I wanted to my preferred CSS framework Tailwind to the project. Again I learned a lot about the anatomy of a Phoenix project and discovered, that the contents of the assets folder are actually a JavaScript subproject.

How to create a web server using Cowboy without Plug or Phoenix - Part 01

A Hello world example of Cowboy!

Inline LiveView syntax highlighting for Emacs

Enable syntax highlighting for inline Phoenix LiveView templates by using the polymode library.

Get the code. It should work with all popular frameworks or vanilla configurations.