Digests » 274

this week's favorite

Oban Monitoring with Plugins

Oban provides a great deal of instrumentation out of the box. In particular, it emits events when jobs are enqueued, started, stopped. These events allow us to monitor the age of jobs as they are being executed. In addition to monitoring job age, it is also important to monitor the depth of queues. Oban does not expose this information directly.

The Curious Case of String.slice/3

Elixir works wonderfully with strings. Some edge parts of it could be a little bit confusing though. I’d like to walk through a few of them.

The Power of Ecto Custom Types

At work, we occasionally have a need to store credentials for third party integrations in the database. We’ve developed a scheme for encrypting these plaintext values when writing to the database and decrypting the ciphertext when reading from the database. This is process happens automatically using ActiveRecord before_save and after_find callbacks; from the perspective of callers, the Integration#password always contains a plaintext password.

Peeking into Elixir

If you don't know already, Elixir is a dynamic, functional programming language designed for building scalable and maintainable applications. It is built on top of Erlang VM and compiles down to Erlang bytecode. Elixir has become one of the most loved programming language of recent times according to stackoverflow survey making this more exciting.

PaaS with Elixir at Heroku

As the platform grew, their engineering teams also adopted different languages, one of them being Elixir. In this article, we will talk about how two distinct engineering teams at Heroku, the Front-end team and the Vault team, have adopted Elixir.