On Programming, Software Architecture, and Sociotechnical Systems

A weblog of thoughts on Computer Programming, Software Architecture, Sociotechnical Systems, and more.


What Kind of Asynchronous is Right For You?

15 June 2023

There are a few ways for services to communicate that can be rightfully classified as asynchronous. But they have very different characteristics. Let's have a look at them and their impact on the overall system structure.

Flix For Java Programmers

24 June 2022

The Java Virtual Machine is not limited to running programs written in the Java programming language. There are many other compilers that output Java bytecode. Some of these languages have so far remained exotic. Others have found a large following, for example Groovy, Clojure, Scala and Kotlin. Now, with Flix, another language, that brings some fresh approaches to the JVM, has entered the scene.

Java Concurrency: An Introduction to Project Loom

17 June 2022

Project Loom is an experimental version of the JDK. It extends Java with virtual threads that allow lightweight concurrency.

Event Collaboration And Event Sourcing

09 June 2022

“Events! Events everywhere!” - or so it seems. This isn’t a bad thing, not at all: Event-driven Architecture can help to make microservice architectures scalable and resilient. But there are different patterns at play that we need to distinguish. And not everything is an event. An attempt for clarification.

Don't Use Await.result!

19 February 2019

Almost regularly I see Scala code where people program in a sequential, synchronous style and integrate an asynchronous I/O call by waiting for its completion with Await.result. But you really shouldn’t.

Java, Scala, Kotlin and .. Skiing

21 May 2017

Java is skiing. Scala is snowboarding. Kotlin is carving skis.

10 More Scala Features Most* Java Developers Love

07 February 2017

In my first blog post, '10 Scala Features Most Java Developers Love', I assembled a top 10 list of Scala features I wouldn't want to miss, and that I found more or less universally liked in conversations with other Java developers. Here are 10 more that would have deserved to also be on the list.

Things I Wish I Knew When I Started Building Reactive Systems

31 January 2017

When you attempt to build reactive systems coming from the world of Java web and enterprise development, you’ll stumble across some fundamental differences and might wish someone had told you earlier. Unless you read this blog post, of course, because I’m going to let you in on four things you should know.

10 Scala Features Most* Java Developers Love

22 November 2015

Some Java developers seem to be intimidated by Scala. They get hung up on some possibly rather obscure feature, and from that conclude that the language must be a complicated maze you can only get lost in. There are so many features in Scala, though, that are so easily accessible, and that really just make the developer’s life easier. This is my list of 10 features that are easy to understand and use, yet very powerful.