Java

Managing Multiple JDK Installations With jEnv

As developers, we’re often working on different codebases at the same time. Especially in environments with microservices, we may be switching codebases multiple times a day.

Read more

Processing Files With Java 8 Streams

Streams, introduced in Java 8, use functional-style operations to process data declaratively. The elements of streams are consumed from data sources such as collections, arrays, or I/O resources like files.

Read more

Implementing Bulkhead with Resilience4j

In this series so far, we have learned about Resilience4j and its Retry, RateLimiter, and TimeLimiter modules. In this article, we will explore the Bulkhead module.

Read more

Implementing Timeouts with Resilience4j

In this series so far, we have learned about Resilience4j and its Retry and RateLimiter modules. In this article, we will continue exploring Resilience4j with a look into the TimeLimiter.

Read more

Optimize Your Dev Loop with Spring Boot Dev Tools

What are you doing when you’ve made a change to a Spring Boot app and want to test it? You probably restart it and go get a coffee or swipe through your Twitter feed until it’s up and running again.

Read more

Implementing Rate Limiting with Resilience4j

In the previous article in this series, we learned about Resilience4j and how to use its Retry module. Let’s now learn about the RateLimiter - what it is, when and how to use it, and what to watch out for when implementing rate limiting (or “throttling”, as it’s also called).

Read more