Plurrrr

Fri 28 Aug 2020

Testing Database Transactions in Go

You can find a lot of articles about how to prevent deadlocks in Go, but most of them focus on concurrency patterns and synchronization tools like mutexes. While it is important to know some techniques to prevent them, a trap you can stumble across more easily without noticing, are database transaction deadlocks.

Source: Testing Database Transactions in Go, an article by Marvin Blum.

Constant Time LFU

A common strategy to make any system super-performant is Caching. Almost all software products, operating at scale, have multiple layers of caches in their architectures. Caching, when done right, does wonder to the response time and is one of the main reasons why products work so well at a massive scale. Cache engines are limited by the amount of memory available and hence once it gets full the engine has to decide which item should be evicted and that is where an eviction algorithm, like LFU and LRU. kicks in.

Source: Constant Time LFU, an article by Arpit Bhayani.

Introducing Modular Underscore

Underscore has been JavaScript’s unofficial standard functional programming library for a decade (together with its major fork, Lodash). Its most recent significant development is the move to ECMAScript 6 modules (ESM). Underscore 1.11 is the first version to be fully modular.

With the new modularity, you can now create a custom build of Underscore with an even smaller footprint. At the same time, we still provide the standard UMD build, which is perfect if you want to get started quickly. The UMD bundle is easy to work with and it has great cache retention if you load it from a CDN.

Source: Introducing Modular Underscore, an article by Julian Gonggrijp.