BlockHound
Java agent to detect blocking calls from non-blocking threads. (by reactor)
imperative-to-reactive
Shows how to migrate from a Imperative Programming model to a Reactive Programming model step-by-step, while keeping caching (by hazelcast-demos)
Our great sponsors
BlockHound | imperative-to-reactive | |
---|---|---|
6 | 2 | |
1,297 | 51 | |
1.3% | - | |
7.0 | 0.0 | |
9 days ago | 8 months ago | |
Java | ||
Apache License 2.0 | - |
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
BlockHound
Posts with mentions or reviews of BlockHound.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2023-02-18.
- Is there a good way to monitor code for blocking operations?
-
Reactive Backend Applications with Spring Boot, Kotlin and Coroutines (Part 1)
There is a great tool called Blockhound we can use to detect if/when we have a blocking call in our application. This way, we can ensure that we don't break the non-blocking nature of our application by mistake while developing new features. Setting it up is fairly straightforward.
- Using Java's Project Loom to build more reliable distributed systems
-
3 Reasons Why All Java Developers Should Consider Quarkus
There's even a test library to detect them: https://github.com/reactor/BlockHound
-
BlockHound: how it works
One of the talks in my current portfolio is Migrating from Imperative to Reactive. The talk is based on a demo migrating from Spring WebMVC to Spring WebFlux in a step-by-step approach. One of the steps involves installing BlockHound: it allows to check whether a blocking call occurs in a thread it shouldn't happen and throws an exception at runtime when it happens.
-
Kicking Spring Native's tires
The first step is to make the application compatible with GraalVM. We need to remove Blockhound from the code. Blockhound allows verifying that no blocking code runs in unwanted places. It's a Java agent that requires a JDK, not a JRE. It's great for a demo, but it has nothing to do with a production application.
imperative-to-reactive
Posts with mentions or reviews of imperative-to-reactive.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2021-06-20.
-
BlockHound: how it works
One of the talks in my current portfolio is Migrating from Imperative to Reactive. The talk is based on a demo migrating from Spring WebMVC to Spring WebFlux in a step-by-step approach. One of the steps involves installing BlockHound: it allows to check whether a blocking call occurs in a thread it shouldn't happen and throws an exception at runtime when it happens.
-
Kicking Spring Native's tires
To experiment with Spring Native, I used my imperative-to-reactive demo code. It offers a couple of challenges concerning AOT:
What are some alternatives?
When comparing BlockHound and imperative-to-reactive you can also consider the following projects:
spring-native - Spring Native is now superseded by Spring Boot 3 official native support
lucene-grep - Grep-like utility based on Lucene Monitor compiled with GraalVM native-image
KendoReact Grid - Issue tracker - KendoReact http://www.telerik.com/kendo-react-ui/
reactive-kotlin-weather-api
agroal - The natural database connection pool
reactor-core - Non-Blocking Reactive Foundation for the JVM
Flyway - Flyway by Redgate • Database Migrations Made Easy.
Reactive Streams - Reactive Streams Specification for the JVM
r2dbc-postgresql - Postgresql R2DBC Driver
futuristic-feline - futuristic-feline is a library for detecting blocking Java futures at runtime
loom - https://openjdk.org/projects/loom
BlockHound vs spring-native
imperative-to-reactive vs spring-native
BlockHound vs lucene-grep
imperative-to-reactive vs KendoReact Grid
BlockHound vs reactive-kotlin-weather-api
BlockHound vs agroal
BlockHound vs reactor-core
BlockHound vs Flyway
BlockHound vs Reactive Streams
BlockHound vs r2dbc-postgresql
BlockHound vs futuristic-feline
BlockHound vs loom