profile-blocking

Detect blocking calls in Spring WebFlux code and propose offloading strategies.

4|Updated May 26, 2025
One-click install
npx skills add https://github.com/pwittchen/varun.surf --skill profile-blocking
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: profile-blocking
Source: https://github.com/pwittchen/varun.surf/tree/main/.claude/skills/profile-blocking
Command: npx skills add https://github.com/pwittchen/varun.surf --skill profile-blocking

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Find blocking calls in reactive WebFlux code that can cause performance issues and thread starvation

Core Features & Use Cases

  • Context-aware analysis of blocking patterns in Spring WebFlux code.
  • Guidance on safely offloading blocking work to appropriate schedulers or virtual threads.
  • Use Case: Diagnose reactive services where blocking calls are used in map/flatMap chains and refactor to non-blocking equivalents.

Quick Start

Analyze a codebase to locate blocking patterns in a reactive WebFlux application and propose offloading strategies.

Frequently Asked Questions about profile-blocking

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
Why does my Spring WebFlux application suffer from thread starvation?

Thread starvation in Spring WebFlux is typically caused by blocking calls within reactive pipelines, which tie up limited event loop threads and cause performance degradation.

How do I find blocking calls in my reactive Java code?

To find blocking calls in reactive Java code, analyze map and flatMap chains for patterns like .block(), Thread.sleep, and blocking I/O operations that halt the reactive pipeline.

What is the best way to offload blocking I/O in a WebFlux service?

The best way to offload blocking I/O in a WebFlux service is to schedule the blocking work on a dedicated scheduler or leverage virtual threads to prevent thread starvation.

Can I use virtual threads to handle blocking calls in Spring WebFlux?

Yes, virtual threads can be used to handle blocking calls in Spring WebFlux, providing a strategy to safely offload blocking work without causing event loop thread starvation.

When should I not use .block() in a reactive pipeline?

You should not use .block() in a reactive pipeline within WebFlux controllers or map and flatMap chains, as it halts the reactive stream and causes immediate thread starvation.