Holy Dev Newsletter August 2024
Welcome to the Holy Dev newsletter, which brings you gems I found on the web, updates from my blog, and a few scattered thoughts. You can get the next one into your mailbox if you subscribe.
What is happening
Not much is happening, since August has been a vacation month. When there was time, I worked on wrapping up Wolframite and its documentation.
Gems from the world wide web
👓 potetm/fusebox: An extremely lightweight fault tolerance library for Clojure [library, clojure, devops]
An extremely lightweight fault tolerance library for Clojure. Provides Bulkhead, Circuit Breaker, Fallback, Memoize, Rate Limit, Retry, Timeout, Register, Bulwark. It aims at being simple, favoring functions over options and callbacks.
Noteworthy: "These utilities are identical to Resilience4J at their core, but thanks to immutable data, namespaced keys, and a dash of macros, Clojure affords us much simpler implementations."
👓 Clojure AntiPatterns: the with-retry macro [opinion]
In short, think really hard whether retrying a failed operation makes sense, and beware the negative side-effects (longer timeouts, flood of logs, compounding retries, ...). Especially do not retry on errors where retry cannot help (404, bad credentials, ...). Valuable lessons there!
👓 explain.dalibo.com [tool, database, performance]
A little buggy but still extremely useful visualizer of PostgreSQL explain data. My dear colleague Jo has used it to troubleshoot a query that he managed to bring down from 4 min to few seconds. (The trick was replacing in with unnest - it seems to create an in-memory table, which is much efficient to search, then the flat list of IN.)
--
Thank you for reading!