Modern telemetry libraries allow easily configuring auto instrumentation, to automatically gather observability data about frameworks and libraries.
There are two main approaches to architecting those auto-instrumentation libraries. As middlewares/wrappers, or as monkey-patches. I believe middlewares are much better, here’s why.
Ever since we need to operate hardware and software in production, we have needed to know how those behave. For example, when I brew craft beer, I use an iSpindle to monitor the temperature and the gravity of my wort.
In this article, I would like to suggest the use of a very common pattern in Go, Functional Options, but adapted to the Ruby language.
Every thursday morning, we meet over tea/coffee with other people living in Toulouse. We call that event “Code & Coffee”.
Designing an API is hard. You think of endpoints as you imagine them; implement them and sometimes sooner or later, you realise things aren’t built the way they should have been.