BlockHound
reactor-core
BlockHound | reactor-core | |
---|---|---|
6 | 21 | |
1,297 | 4,824 | |
0.5% | 0.5% | |
7.4 | 9.4 | |
12 days ago | 6 days ago | |
Java | Java | |
Apache License 2.0 | Apache License 2.0 |
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
- 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.
reactor-core
-
Is it wrong to use "try-catch" inside a reactive stream operator (project reactor)?
I was exploring reactive streams with project reactor and I encountered a use case where I needed to skip to the next event if an error occurred during the processing of the current event (e.g. deserialization issue).
-
Modern Async Primitives on iOS, Android, and the Web
Kotlin also has a construct for asynchronous collections/streams. Kotlin's version of AsyncSequence is called a Flow. Just as Swift's AsyncSequence builds upon prior experience with RxSwift and Combine, Kotlin's Flow APIs build upon earlier stream/collection APIs in the JVM ecosystem: Java's RxJava, Java8 Streams, Project Reactor, and Scala's Akka.
-
Alternatives to scala FP
Java's projectreactor.io ? It is widely used in Java world, see Spring WebFlux.
-
Hydroflow: Dataflow Runtime in Rust
I guess more a closer comparison would be with the Project Reactor https://projectreactor.io/ which is also a low level framework for data processing.
-
Reactive Backend Applications with Spring Boot, Kotlin and Coroutines (Part 1)
Spring Framework is one of the most popular choices for web applications. It comes with a great ecosystem, tooling, and support. Spring applications are mainly written in Java. While they can serve quite well in many different domains and use cases, they may not be a good fit for modern-day applications which require low-latency and high-throughput. This is where the reactive programming paradigm could help because the paradigm is designed to address these issues by its non-blocking nature. Spring already supports reactive programming via Project Reactor.
-
Brief Intro to Reactive Streams with Project Reactor
The reactive streams API provides the specification for non-blocking async streams processing with back pressure mechanism, and Project Reactor is an implementation written in java.
- Angular for Junior Developers: Promises vs Observables
-
How much of real world programming involves using containers and for loops?
https://projectreactor.io/ https://docs.oracle.com/javase/8/docs/api/java/util/stream/Stream.html https://rxjs.dev/ https://developer.android.com/kotlin/coroutines https://developer.apple.com/documentation/combine
- Spring Reactor
-
Reactor bad, Loom good - but how will the landscape shape out?
With respect to Loom, it could be much easier for synchronous and reactive code to interoperate using schedulers that take advantage of Loom. The impact of Loom on Project Reactor was discussed in #3084, you might find it interesting.
What are some alternatives?
spring-native - Spring Native is now superseded by Spring Boot 3 official native support
Reactive Streams - Reactive Streams Specification for the JVM
imperative-to-reactive - Shows how to migrate from a Imperative Programming model to a Reactive Programming model step-by-step, while keeping caching
RxKotlin - RxJava bindings for Kotlin
lucene-grep - Grep-like utility based on Lucene Monitor compiled with GraalVM native-image
RxJava - RxJava – Reactive Extensions for the JVM – a library for composing asynchronous and event-based programs using observable sequences for the Java VM.
reactive-kotlin-weather-api
reactor-kotlin-extensions
agroal - The natural database connection pool
redux-kotlin - Predictable state container for Kotlin apps
Flyway - Flyway by Redgate • Database Migrations Made Easy.
Async Http Client - Asynchronous Http and WebSocket Client library for Java