transaction-consistency-designer

Design transaction boundaries and rollback rules for Kotlin + Spring workflows.

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

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Design safe transaction boundaries, rollback behavior, idempotency, locking, and consistency strategies for Kotlin + Spring business workflows. Use when a feature writes to the database, spans multiple repositories, publishes messages, calls external systems, suffers from partial commits or duplicate processing, or needs precise @Transactional propagation, or isolation guidance.

Core Features & Use Cases

  • Define clear transaction boundaries aligned with business invariants to avoid long-running spans.
  • Provide guidance on idempotency keys, propagation, isolation levels, and outbox patterns to ensure consistent state across steps and external calls.
  • Flag anti-patterns and offer robust error handling and rollback considerations for multi-step workflows.

Quick Start

Describe a concrete workflow and I will map transactional boundaries, idempotency keys, and outbox decisions for your Kotlin + Spring services.

Frequently Asked Questions about transaction-consistency-designer

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

FAQPage Schema
How do I prevent partial commits in Spring multi-repository workflows?

To prevent partial commits in Spring, you must define clear transaction boundaries aligned with business invariants. This ensures multi-repository operations execute within a single transactional span, rolling back all changes if any step fails.

When do I need an outbox pattern for transactional consistency?

You need an outbox pattern for transactional consistency when publishing messages after database writes. It prevents data inconsistencies by storing messages in the same transaction, ensuring reliable post-commit delivery without partial commits.

What is the best way to configure @Transactional propagation and isolation levels?

The best way to configure @Transactional propagation and isolation levels is to map them precisely to your workflow steps. Proper configuration prevents data anomalies and ensures safe concurrent access during multi-step operations.

How do you handle rollback rules for external calls in a Spring transaction?

Handling rollback rules for external calls requires explicit transactional checks and robust error handling. You should isolate external calls from the main database span or use outbox patterns to prevent partial commits.

Why does my Kotlin service suffer from duplicate processing and data inconsistencies?

Your Kotlin service suffers from duplicate processing and data inconsistencies due to missing idempotency keys and improper transaction boundaries. Applying precise @Transactional propagation and outbox patterns resolves this.