Java 8: New features in ConcurrentHashMap

The java.util.concurrent got a massive overhaul with the release of Java 8. We’ve been introduced to whole new classes like CompletableFuture that brought a long awaited improvement to asynchronous work. We’ve also seen a lot of new methods being introduced in already existing classes and interfaces…


Java 8: Writing asynchronous code with CompletableFuture

Java 8 introduced a lot of cool features, whereas lambdas and streams caught much of the attention. What you may have missed is the CompletableFuture. You probably already know about Futures A Future represents the pending result of an asynchronous computation. It offers a method — get — that returns the result…


Java 8: Removing null checks with Optional

If-statements are all around us and a big amount of them are simply checking if a value is there or not. If we now for a minute move away from this imperative way of thinking - why should we have to explicitly explain how to do a null check? Why…


Concurrency made easy with Clojure and Pulsar

In the last couple of months I've been playing around with different solutions for actor based programming. To recap - actors are lightweight processes that communicate asynchronously by sending messages between each other. You can read more about the actor model here. Earlier I've covered how to do this using…




Java 8: Composing functions using compose and andThen

In this post we're going to take a look at function composition using two compose functions provided in the Function interface - compose and andThen. What is function composition? It all has to do with creating small reusable functions that you can combine to compose new functions. Now, how can…