Exactly Once Processing in Kafka 1. Overview In this tutorial, we’ll look at how Kafka ensures exactly-once delivery between producer and consumer applications through the newly introduced Transactional API. Additionally, we’ll use this API to implement transactional producers and consumers to achieve end-to-end exactly-once delivery in a WordCount example. 2.… Continue Reading kafka-exactly-once

Second Round of Improvements to the Reddit Application 1. Overview Let’s continue our ongoing Reddit web app case study with a new round of improvements, with the goal of making the application more user friendly and easier to use. 2. Scheduled Posts Pagination First – let’s list the scheduled posts… Continue Reading reddit-web-app-improvements-2

Intro to Structurizr 1. Introduction This article is about Structurizr, a tool that provides a programmatic approach to architectural definitions and visualizations based on the C4 Model. Structurizr breaks with traditional drag-and-drop approaches of architectural diagram editors such as UML and allows us to describe our architectural artifacts using the… Continue Reading structurizr

Spring Security Digest Authentication 1. Overview This tutorial shows how to set up, configure and customize Digest Authentication with Spring. Similar to the previous article covering Basic Authentication, we’re going to built on top of the Spring MVC tutorial, and secure the application with the Digest Auth mechanism provided by… Continue Reading spring-security-digest-authentication

A Quick Guide to Spring MVC Matrix Variables 1. Overview The URI specification RFC 3986 defined URI path parameters as name-value pairs. Matrix variables is a Spring coined term and an alternative implementation for passing and parsing URI path parameters. Matrix variables support became available in Spring MVC 3.2 and… Continue Reading spring-mvc-matrix-variables

JUnit 5 Temporary Directory Support 1. Overview When testing, we often need access to a temporary file. However, managing the creation and deletion of these files ourselves can be cumbersome. In this quick tutorial, we’ll take a look at how JUnit 5 alleviates this by providing the TempDirectory extension. For… Continue Reading junit-5-temporary-directory