Skip to content

2025

Engine Rooms of Asynchronous Processing (part 1): Reactor Pattern Conceptual Overview

"Engine Rooms of Asynchronous Processing" are series of articles exploring patterns used to facilitate concurrent asynchronous programming. The series aims to (eventually) provide a clear understanding of well-established patterns in this space and explore implementing them from scratch.

The first group of these articles will explore the Reactor pattern.

Read more

The Social Life of Software: Bounded Contexts Relationships in Action (Part II)

This is a follow-up post from Part I where we looked into Cooperation relationship type between Bounded Contexts. This post will look into following topics:
* Customer-Supplier
* Separate Ways
* Context Map

Read more

The Social Life of Software: Bounded Contexts Relationships in Action (Part I)

We have all heard about Anti-Corruption Layers, Open-Host, Separate Ways, Conformist etc etc, it just happens that on a day to day basis we are dealing with these abstractions while we might not be very conscious about them. In this post, I try to provide concrete examples of how these Bounded Context relationships are in play.

Read more

Kotlin Coroutines and Java NIO 2 Asynchronous Channels (Part II)

We showed that using Kotlin Coroutines and its ecosystem, we can write much more maintainable code when taking advantage of Java NIO 2 Asynchronous Channels. This blog post is the follow-up and last part of previous blog post where we managed to write a very simple Asynchronous and Non-blocking Java NIO server using AsynchronousServerSocketChannel. Now in this part we will leverage Kotlin coroutines and rewrite the whole thing. The end result will be interesting in that we end up with a more maintainable code!

Read more

Kotlin Coroutines and Java NIO 2 Asynchronous Channels (Part I)

Thanks to Kotlin Coroutines and its ecosystem, we can write much more maintainable code when taking advantage of Java NIO 2 Asynchronous Channels. This two part blog post will showcase how we can fuse Java NIO 2 AsynchronousServerSocketChannel and Kotlin Coroutines together to write a maintainable non-blocking asynchronous network applications.

Read more