본문으로 건너뛰기
cccskills
무료GitHub에 공개

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.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

설치 방법 보기

포함된 파일(4)

  • SKILL.md2.2 KB
  • agents/openai.yaml216 B
  • examples/bad-reactive-service.java115 B
  • examples/good-reactive-service.java705 B

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

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.

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Use when adding Spring AI-specific model observations, token usage, latency, externally configured cost attribution, advisor telemetry, or protected prompt and completion logging. Use production-observability for general service metrics, health, logs, and OTLP setup.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

rrezartprebreza/spring-boot-skills3132026년 10월 17일 업데이트

Use when versioning Spring MVC or WebFlux APIs in Spring Boot 4 / Spring Framework 7. Covers built-in mapping versions, request version resolution, defaults, supported versions, and deprecation headers.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

rrezartprebreza/spring-boot-skills3132026년 10월 17일 업데이트

Use when versioning Spring MVC or WebFlux APIs in Spring Boot 3 / Spring Framework 6. Covers explicit URL, header, and media-type strategies, compatibility rules, and deprecation handling.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

rrezartprebreza/spring-boot-skills3132026년 10월 17일 업데이트

Use when introducing or correcting grouped Spring Boot configuration, typed property binding, validation, profiles or secret injection. Do not rewrite unrelated single-value configuration.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

rrezartprebreza/spring-boot-skills3132026년 10월 17일 업데이트

Use when packaging a Spring Boot 3 application as an OCI image or GraalVM native executable. Covers buildpacks, layered images, JVM containers, AOT hints, probes, security, and verification.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

rrezartprebreza/spring-boot-skills3132026년 10월 17일 업데이트

Use when packaging Spring Boot 4 as an OCI image, JVM container, AOT application, or GraalVM native executable. Covers buildpacks, layers, runtime hints, probes, security, and verification.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

rrezartprebreza/spring-boot-skills3132026년 10월 17일 업데이트

rrezartprebreza의 스킬 모두 보기

이 스킬의 문제 신고