transaction-consistency-designer

Design safe database transaction boundaries for Kotlin and Spring workflows.

14|1|Updated Mar 6, 2026
One-click install
npx skills add https://github.com/Kotlin/kotlin-backend-agent-skills --skill transaction-consistency-designer
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: transaction-consistency-designer
Source: https://github.com/Kotlin/kotlin-backend-agent-skills/tree/main/.agents/skills/transaction-consistency-designer
Command: npx skills add https://github.com/Kotlin/kotlin-backend-agent-skills --skill transaction-consistency-designer

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Design safe transaction boundaries and rollback behavior for Kotlin + Spring business workflows. Ensure idempotency, proper locking, and clear commit semantics across services, repositories, and external calls.

Core Features & Use Cases

  • Define atomic boundaries for multi-step workflows and prevent partial commits.
  • Recommend propagation and isolation settings for @Transactional, along with idempotency strategies and outbox patterns.
  • Use cases include features that write to databases across multiple repositories or publish messages to external systems.

Quick Start

Describe your business workflow and data access steps to receive a defined transactional design.

Frequently Asked Questions about transaction-consistency-designer

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

FAQPage Schema
How do I define @Transactional boundaries for a multi-step Spring workflow?

Define transaction boundaries by applying @Transactional to atomic multi-step workflows to prevent partial commits. Specify propagation and isolation settings to ensure safe rollback behavior across multiple repositories in your Spring application.

How do I ensure idempotency and consistency when publishing messages to external systems?

Ensure idempotency and consistency by applying outbox patterns for message publishing. Define clear commit boundaries so database writes and external system calls remain synchronized without partial updates during failures.

What propagation and isolation settings should I use for Spring @Transactional?

Propagation and isolation settings depend on your workflow's concurrency and locking requirements. Analyze data access steps to recommend precise @Transactional configurations that prevent dirty reads and ensure safe transactional behavior.

When do I need the outbox pattern for transaction consistency in Kotlin?

You need the outbox pattern when a feature writes to the database and publishes messages to external systems. It ensures transaction consistency by capturing messages within the same transactional boundary as your data changes.

Can I use this transaction consistency approach for workflows spanning multiple repositories?

Yes, this approach specifically handles workflows spanning multiple repositories. It defines atomic boundaries to prevent partial commits and ensures proper locking and rollback behavior across all repository interactions.

Why does my transaction roll back unexpectedly when calling external systems in Spring?

Transactions roll back unexpectedly when external calls lack clear commit boundaries or proper idempotency. Define precise transactional boundaries and retry behavior to isolate external system failures from database commit semantics.