implement-reactive-r2dbc

Define reactive R2DBC entities, repositories, and Flyway migrations for Firefly Framework services.

Updated Aug 23, 2026
One-click install
npx skills add https://github.com/fireflyframework/fireflyframework-claude-skills --skill implement-reactive-r2dbc
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: implement-reactive-r2dbc
Source: https://github.com/fireflyframework/fireflyframework-claude-skills/tree/main/skills/implement-reactive-r2dbc
Command: npx skills add https://github.com/fireflyframework/fireflyframework-claude-skills --skill implement-reactive-r2dbc

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Defines the recommended approach for building reactive data access layers with R2DBC in Firefly Framework services, including entity definitions, repositories, migrations, connection pooling, and naming conventions.

Core Features & Use Cases

  • Reactive data modeling: Define R2DBC entities using non-JPA annotations and validate mappings with Spring Data Relational.
  • Reactive repositories and templates: Use ReactiveCrudRepository, R2dbcEntityTemplate, and DatabaseClient for non-blocking data access and complex queries.
  • Migrations and auditing: Create Flyway migrations and enable R2dbc auditing for created/updated timestamps.
  • End-to-end workflow: From entity to repository to migrations to configuration, including mapping DTOs with MapStruct.
  • Use Case: Build a small service where an Account entity is persisted reactively with auditing and migrations.

Quick Start

Create a minimal Reactive R2DBC module by defining an entity, a reactive repository, and a Flyway migration to bootstrap the data layer.

Frequently Asked Questions about implement-reactive-r2dbc

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

FAQPage Schema
How do I define reactive R2DBC entities for Spring Boot services?

Reactive R2DBC entities are defined using non-JPA annotations validated with Spring Data Relational, explicitly mapping database tables for non-blocking data modeling. This approach avoids JPA overhead while ensuring correct persistence mappings.

Can I use ReactiveCrudRepository and DatabaseClient together for complex queries?

Yes, you can use ReactiveCrudRepository for standard non-blocking data access alongside R2dbcEntityTemplate and DatabaseClient for complex reactive queries. This combination provides flexible data access patterns within Spring Data R2DBC.

How do I set up Flyway migrations and auditing for Spring Data R2DBC?

Flyway migrations are created to bootstrap the schema, while R2dbc auditing is explicitly enabled to automatically manage created and updated timestamps. This workflow ensures database schema consistency and tracking.

What is the best way to build a non-blocking data access layer in Spring Boot?

The recommended approach for a non-blocking data access layer uses Spring Data R2DBC with ReactiveCrudRepository, R2dbcEntityTemplate, and DatabaseClient. This stack fully supports reactive transactional patterns and auditing.

Does Spring Data R2DBC support mapping DTOs with MapStruct in a reactive workflow?

Yes, the end-to-end reactive R2DBC workflow explicitly includes mapping DTOs with MapStruct. This allows you to cleanly translate persisted entities into data transfer objects without blocking.