Skip to content
Back to skills

Quarkus Reactive

ASecurity

Mutiny reactive types, reactive routes, and non-blocking I/O.

  • 8 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 8, 2026
ai-agentsjavareact

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned September 8, 2026

npx -y skills add ngxtm/devkit --skill quarkus-reactive --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Quarkus Reactive?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Quarkus Reactive
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/ngxtm-quarkus-reactive/badge)](https://www.skillsdirectory.com/skills/ngxtm-quarkus-reactive)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: Quarkus Reactive
description: Mutiny reactive types, reactive routes, and non-blocking I/O.
metadata:
  labels: [java, quarkus, reactive, mutiny]
  triggers:
    files: ['**/*.java']
    keywords: [Mutiny, Uni, Multi, '@Route', reactive, SmallRye, '@NonBlocking']
---

# Quarkus Reactive Standards

## Mutiny Types

```java
// Uni - 0 or 1 item (like CompletableFuture)
public Uni<User> findById(Long id) {
    return Uni.createFrom().item(() -> repository.findById(id))
        .onFailure().recoverWithItem(User.unknown());
}

// Multi - 0 to N items (like Stream)
public Multi<User> streamAll() {
    return Multi.createFrom().items(repository.findAll().stream())
        .filter(User::isActive);
}

// Transformations
Uni<String> name = findById(1L)
    .map(User::getName)
    .onItem().ifNull().failWith(new NotFoundException());

// Combining
Uni<UserProfile> profile = Uni.combine().all()
    .unis(findUser(id), findOrders(id), findPreferences(id))
    .with((user, orders, prefs) -> new UserProfile(user, orders, prefs));
```

## Reactive REST Endpoints

```java
@Path("/users")
public class UserResource {

    @GET
    @Path("/{id}")
    public Uni<User> get(@PathParam("id") Long id) {
        return userService.findById(id);
    }

    @GET
    @Produces(MediaType.SERVER_SENT_EVENTS)
    public Multi<User> stream() {
        return userService.streamAll();
    }

    @POST
    public Uni<Response> create(CreateUserRequest request) {
        return userService.create(request)
            .map(user -> Response.created(URI.create("/users/" + user.id())).build());
    }
}
```

## References

- [Mutiny Patterns](references/mutiny-patterns.md) - Error handling, timeouts, combining

Files in this skill

  • SKILL.md1.7 KB
  • references/REFERENCE.md307 B

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…