Skip to content
Development
Skill

/webflux-reactive-patterns

Use when the complete Spring Boot 3 request path is reactive: WebFlux controllers, Reactor pipelines, R2DBC persistence, streaming, backpressure, or cancellation. For defining and registering declarative outbound API interfaces, use http-interface-clients.

From plugin
spring-boot-skills
33733 skills

Claude Code

$ npx -y skills add rrezartprebreza/spring-boot-skills --skill webflux-reactive-patterns --agent claude-code

SKILL.md

webflux-reactive-patterns.SKILL.md
name: webflux-reactive-patterns
description: >
  Use when the complete Spring Boot 3 request path is reactive: WebFlux controllers, Reactor
  pipelines, R2DBC persistence, streaming, backpressure, or cancellation. For defining and
  registering declarative outbound API interfaces, use http-interface-clients.

WebFlux Reactive Patterns

Use WebFlux when the complete request path can benefit from non-blocking I/O.

Pipeline rules

  • Return `Mono` or `Flux`; do not call `subscribe()` in request-handling code.
  • Compose work with `map`, `flatMap`, `concatMap`, and `zip` according to ordering requirements.
  • Keep blocking JDBC, filesystem, and legacy SDK calls out of event-loop threads.
  • Isolate unavoidable blocking calls on `boundedElastic` at the narrow adapter boundary.
  • Apply timeouts at remote-call boundaries and preserve cancellation.

Context and errors

  • Put request-scoped metadata in Reactor `Context`, not `ThreadLocal`.
  • Translate domain failures centrally without swallowing cancellation or infrastructure errors.
  • Use `onErrorResume` only when a defined fallback exists.
  • Avoid `onErrorContinue`; it makes partial processing hard to reason about.

Persistence and streaming

  • Use R2DBC for reactive database access; JDBC makes the pipeline blocking.
  • Bound concurrency for fan-out operations.
  • Define backpressure and buffering limits for streaming endpoints.
  • Avoid collecting an unbounded `Flux` into memory.

Testing

  • Use `StepVerifier` for publisher behavior and `WebTestClient` for HTTP contracts.
  • Test cancellation, timeout, empty results, errors, ordering, and backpressure.
  • Enable blocking-call detection in tests when the project supports it.

Examples

  • See `examples/good-reactive-service.java` and `examples/bad-reactive-service.java`.

Gotchas

  • Agent calls `block()` in a controller or service - keep the full request path non-blocking.
  • Agent calls `subscribe()` manually - the web runtime owns subscription.
  • Agent stores tenant or security data in `ThreadLocal` - use Reactor `Context`.
  • Agent uses unbounded `flatMap` - set concurrency according to downstream capacity.
  • Agent wraps JDBC in `Mono.just` - that still blocks the caller thread.
Read more
@rrezartprebreza
Ships withspring-boot-skills

Production-grade Claude Code and Codex skills for Spring Boot developers

Stars on GitHub

Momentum

stars in total
337
Star history of rrezartprebreza/spring-boot-skills on GitHub, a chart by star-history.com

Other skills on spring-boot-skills.

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills10d309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc12d293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react1d252k
@facebook@facebookInstall Skill

Questions about webflux-reactive-patterns.

Which coding agents can use webflux-reactive-patterns?
webflux-reactive-patterns installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.