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.