How to write a (completely lock-free) concurrent LRU Cache with ZIO STM

Writing concurrent data structures using traditional tools – just like everything else under java.util.concurrent – is generally very complicated. So, in this article, we are going to see how ZIO STM can make our lives a lot easier when it comes to writing concurrent data structures – such as a concurrent LRU Cache – in a completely lock-free fashion that is a lot simpler to reason about.