Recently, I attended the Kotlin programming language conference, aptly named KotlinConf, to learn about the latest developments in the language. Naturally, my first idea for this blog was to list the top takeaways of the talks I attended. However, I thought it could be more useful for those who aren’t familiar with Kotlin yet to […]
Parallel Short-Circuiting With Reactive Programming
Dealing with asynchronous and parallel validation There are scenarios in Reactive Programming when the outcome of a code block is depends on several separate independent expressions (jobs). If any of them goes wrong (or right depending on the problem), you can already decide about final result and you don’t need to wait for the outcome […]
Top take-aways from TEQNation
Last week, on May 15, I had the pleasure of attending the TEQNation conference. While I had been to this NLJUG event before, it felt like my first time again. Not only because of the amazing new location—the industrial chic De Fabrique—also because it’s my first time attending as a budding programmer. Although, given the […]
Spring Framework: Becoming the source of modern Java
A retrospect with Trifork’s CTO of Enterprise Application Development Joris Kuipers It may be surprising to realise that it’s been 16 years since the Spring Framework was first released. From its beginnings as an inversion of control container shared with a tight-knit community, Spring has evolved to a fully-fledged ecosystem of its own. No longer […]
Retry functionality in a reactive programming context
Reactive programming can be used to solve a lot of different use cases. Forinstance, reactive programming can be really helpful for cases where timing is an issue. An example of such a case is retry logic with delay or backoff functionality. Let’s have a look at some different implementations using Project Reactor (https://projectreactor.io) for Java. […]
Leaving a Java legacy behind
As with a house, software applications require maintenance too. Otherwise, you risk the digital equivalent of rot: bit-rot. Often, the maintenance is done like with a house: Superficially to make it look nice again with a new look-and-feel, a new colour scheme (a paint job) and a few new stock photos. But every once in a […]
Dockerising your legacy integration tests
As most of you will know, every now and then you can expect the question ‘Can you help fix something on this ancient project?’ According to the Universal Software Ageing table, that means anything from last month to much, much older. I got such a question recently, being in-between projects, and this project fell squarely into […]
Integrating the AWS Parameter Store with Spring Cloud
I’ll tell you all my secrets (but I lie about my past)— Tom Waits – Tango till they’re sore tl;dr We’ve integrated the AWS Parameter Store with Spring Cloud so that it can be used as a secure configuration backend for services deployed to EC2, including ECS. This code has recently been merged in Spring Cloud […]
Using Axon with PostgreSQL without TOAST
The client I work for at this time is leveraging Axon 3. The events are stored in a PostgreSQL database. PostgreSQL uses a thing called TOAST (The Oversized-Attribute Storage Technique) to store large values. From the PostgreSQL documentation: “PostgreSQL uses a fixed page size (commonly 8 kB), and does not allow tuples to span multiple […]
How to send your Spring Batch Job log messages to a separate file
In one of my current projects we’re developing a web application which also has a couple of dozen batch jobs that perform all sort of tasks at particular times. These jobs produce quite a bit of logging output when they’re run, which is important to see what has happened during a job exactly. What we […]