reactive-programming

Evaluate coroutines, Flow, and reactive streams in Kotlin systems.

1|Updated Mar 14, 2026
One-click install
npx skills add https://github.com/agnaldo4j/kanban-vision-api-kt --skill reactive-programming
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: reactive-programming
Source: https://github.com/agnaldo4j/kanban-vision-api-kt/tree/main/.claude/skills/reactive-programming
Command: npx skills add https://github.com/agnaldo4j/kanban-vision-api-kt --skill reactive-programming

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This skill resolves ambiguity in architectural and implementation choices regarding concurrency and dataflow, preventing the misuse of reactive patterns in request/response systems.

Core Features & Use Cases

  • Paradigm Classification: Distinguishes between async/non-blocking code (coroutines) and true reactive streams (Flow/Rx).
  • Decision Support: Provides a rubric for choosing between suspend functions, cold Flows, and hot streams based on data shape and back-pressure requirements.
  • Use Case: Use this skill when reviewing a pull request that introduces reactive libraries to ensure the implementation matches the actual data consumption needs of the system.

Quick Start

Use the reactive-programming skill to evaluate if the current implementation of the simulation engine requires a transition from suspend functions to Kotlin Flow.

Frequently Asked Questions about reactive-programming

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

FAQPage Schema
How do I know if I need Kotlin coroutines or reactive streams for my data flow?

Kotlin coroutines handle async request/response logic, while reactive streams like Flow manage continuous data flow with back-pressure. Evaluate your data consumption needs to distinguish non-blocking concurrency from true stream processing.

What is the difference between non-blocking request response and reactive stream processing in Kotlin?

Non-blocking request response in Kotlin uses suspend functions for single asynchronous values, whereas reactive stream processing uses Flow or Rx for emitting multiple values over time, requiring specific back-pressure handling.

When should I transition from suspend functions to Kotlin Flow in my architecture?

Transition from suspend functions to Kotlin Flow when your system must consume continuous data streams rather than single request-response values. Evaluate if your data flow requires back-pressure handling and cold stream capabilities.

How do I validate architectural decisions for reactive programming during a pull request review?

Validate reactive programming architectural decisions by checking if the implemented reactive libraries match actual data consumption needs. Ensure true reactive streams are not incorrectly applied to simple non-blocking request-response logic.

Can I use cold Flows for hot stream data consumption requirements?

Cold Flows in Kotlin execute per collector and are suited for on-demand data, whereas hot streams broadcast data independently. Evaluate your specific data shape and concurrency requirements to select the appropriate stream type.

Why does my non-blocking concurrent code get mislabeled as reactive stream processing?

Non-blocking concurrent code is often mislabeled as reactive stream processing because both use asynchronous execution. Distinguish them by checking if the logic handles single request-response or continuous multi-value data flow with back-pressure.