Devon C. Estes

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 is 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. »

Local Metrics Aggregation With Counters

Recently I needed to get a better picture of how my application's database connection pool was doing, but there was a bit of a hitch. DBConnection has a highly optimized queuing algorithm, but the downside of that optimization is that you can't get an accurate picture of the number of idle and busy connections in the pool at any given time like you can with Poolboy. »

What's Inside a Reduction?

I recently finished up the basics for a feature in Benchee that I had been pretty excited about for a while now - reduction counting! But after trying it out on my own for a bit to look for bugs and see how it could be best used so I could document the feature well, I pretty quickly ran into some confusing results. »

A proposal for an Absinthe application structure

One of the great things about GraphQL is how broad the abstractions are. Everything is just an "object", with "fields"! This makes things infinitely composable, and is where a good deal of the power in GraphQL comes from. But, like all things, there are downsides to this - first and foremost is that it makes organizing a project difficult. »

Writing (and testing) a custom Credo check

I've previously written about why one might want to write custom Credo checks, but I didn't talk about the way I actually like to go about doing it in that post, so today I'm going to break down my workflow for writing custom Credo checks. »