summer-data

Add audit logging and transactional outbox to Summer Framework R2DBC layers.

3|2|Updated Jan 16, 2026
One-click install
npx skills add https://github.com/taipt1504/agent-skills --skill summer-data
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: summer-data
Source: https://github.com/taipt1504/agent-skills/tree/main/skills/summer-data
Command: npx skills add https://github.com/taipt1504/agent-skills --skill summer-data

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

Provides a production-grade data layer for the Summer Framework that ensures reliable, auditable change records and safe, transactional event delivery so teams can track system actions and publish domain events without losing data or corrupting schema expectations.

Core Features & Use Cases

  • AuditService builder and convenience APIs for creating rich audit_log entries with actor context, diffs, and intent metadata to capture CRUD and non-entity events.
  • Annotation-based auditing for reactive Mono/Flux endpoints to automatically produce audit entries after completion.
  • Transactional OutboxService with scheduled publishing, retry/circuit-breaker support, and cleanup to reliably deliver events to external brokers.
  • Schema validators and DDL guidance that validate audit_log and outbox_events at startup and require Flyway migrations to be present.
  • R2DBC converters and integrations for shared value objects from summer-core and guidance for high-volume partitioning and performance tuning.

Quick Start

Create and add the audit_log and outbox_events migrations, ensure summer-core is on the classpath, enable the outbox scheduler and circuit breaker in configuration, and restart the application to run schema validation and activate AuditService and OutboxService.

Frequently Asked Questions about summer-data

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

FAQPage Schema
How do I implement a transactional outbox pattern with Spring R2DBC?

You can implement a transactional outbox with Spring R2DBC by using a dedicated OutboxService with scheduled publishing, retry logic, and circuit-breaker support. This ensures reliable event delivery to external message brokers without losing data.

How does annotation-based audit logging work for reactive Mono and Flux endpoints?

Annotation-based audit logging automatically records audit entries after reactive Mono or Flux endpoints complete. It captures CRUD actions and non-entity events by applying annotations directly to your reactive endpoint methods.

Do I need Flyway database migrations to validate the audit_log and outbox_events schemas?

Yes, schema validators require Flyway migrations to be present for the audit_log and outbox_events tables. The application validates these schemas at startup to ensure your database structure matches expectations before activating services.

Can I use R2DBC converters to map shared value objects from summer-core?

Yes, you can register R2DBC converters to integrate shared value objects from summer-core into your reactive data layer. This ensures consistent type mapping and seamless database interactions for your Spring R2DBC application.

What is the best way to capture actor context and diffs in R2DBC audit entries?

The best way to capture actor context and diffs in R2DBC audit entries is using an AuditService builder API. It allows you to construct rich audit_log entries with intent metadata, actor details, and data diffs for comprehensive tracking.

How do I configure a circuit breaker for outbox event publishing in a Spring reactive application?

You can configure a circuit breaker for outbox event publishing by enabling it in your application configuration settings. The OutboxService uses these configurable circuit-breaker settings to manage retry logic and prevent cascading failures during broker outages.