Search⌘ K

Converting a Webflux Request Into an RSocket Fire-And-Forget

Understand how to implement RSocket's fire-and-forget mechanism by forwarding WebFlux requests and managing Mono<Void> responses. Learn to write test cases to verify fire-and-forget interactions, ensuring proper HTTP responses and data persistence in a Spring Boot reactive environment.

Forwarding item using fire-and-forget

If we take a look at the following flow, we can see how to use RSocket’s fire-and-forget paradigm:

Java
@PostMapping("/items/fire-and-forget")
Mono<ResponseEntity<?>> addNewItemUsingRSocketFireAndForget(@RequestBody Item item) {
return this.requester
.flatMap(rSocketRequester -> rSocketRequester
.route("newItems.fire-and-forget") // <1>
.data(item)
.send()) // <2>
.then( // <3>
Mono.just(
ResponseEntity.created(
URI.create("/items/fire-and-forget")).build()));
}
Forwarding a new Item over an RSocket using fire-and-forget

Here’s a breakdown of the code above:

  1. In line 5, the example forwards the incoming request to the destination newItems.fire-and-forget.

  2. Line 7 uses RSocketRequestor.send() ...