skill-arch-transactional

Explains ACID principles, locking strategies, and outbox-based event publishing for TypeScript and Python microservices.

4|Updated Mar 31, 2026
One-click install
npx skills add https://github.com/ryan-nguyen-01/agent-platform --skill skill-arch-transactional
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: skill-arch-transactional
Source: https://github.com/ryan-nguyen-01/agent-platform/tree/main/.claude/skills/skill-arch-transactional
Command: npx skills add https://github.com/ryan-nguyen-01/agent-platform --skill skill-arch-transactional

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Maintaining data integrity across distributed services is challenging due to partial failures, retries, and cross-service coordination. This Skill provides patterns and practices to ensure atomic updates, proper rollback, and reliable event publication.

Core Features & Use Cases

  • ACID Fundamentals: Atomicity, Consistency, Isolation, and Durability are explained and demonstrated through practical guidance to ensure reliable cross-service transactions.
  • Locking & Concurrency: Guidance on optimistic locking, pessimistic locking, and advisory locks to prevent conflicts and deadlocks.
  • Transaction Boundaries & Patterns: Emphasizes Unit of Work, Savepoints, Outbox pattern, and Idempotency keys for safe, repeatable operations across services.
  • Distributed Transactions: Coverage of two-phase commit (2PC), Try-Confirm-Cancel (TCC), and Saga choreography for cross-service consistency.
  • Error Handling & Retries: Strategies for robust failure handling, idempotent design, and controlled retries.

Quick Start

Implement a basic transactional flow across services with a unit of work, and demonstrate an outbox-based event publication.

Frequently Asked Questions about skill-arch-transactional

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

FAQPage Schema
How do I maintain ACID transactional consistency across microservices during partial failures?

ACID transactional consistency across microservices is maintained using patterns like Saga choreography, Try-Confirm-Cancel (TCC), and two-phase commit (2PC). These distributed transaction patterns ensure atomic updates and proper rollback when partial failures occur.

What is the best way to prevent deadlocks and concurrency conflicts in distributed transactions?

Deadlocks and concurrency conflicts in distributed transactions are prevented using locking strategies like optimistic locking, pessimistic locking, and advisory locks. Selecting appropriate isolation levels and deadlock prevention mechanisms ensures safe concurrent operations.

How does the outbox pattern work for reliable event publishing in distributed systems?

The outbox pattern works by writing domain state changes and event publication records within the same Unit of Work boundary. This guarantees that outbox events are published reliably exactly once, even if downstream services experience transient failures.

When do I need idempotency keys for cross-service API retries?

Idempotency keys are needed for cross-service retries when operations must produce the same outcome regardless of duplicate requests. They enable safe, repeatable operations by ensuring distributed transaction retries do not cause duplicate side effects.

Does this transactional Skill provide implementation examples for both Python and TypeScript environments?

Yes, this transactional Skill provides practical code examples in both TypeScript and Python. It demonstrates implementation patterns for isolation levels, Unit of Work boundaries, savepoints, and distributed transaction coordination across microservices.

Why does my Saga choreography rollout experience data inconsistency during retries?

Saga choreography experiences data inconsistency during retries when idempotency is not enforced at service boundaries. Implementing idempotency keys, controlled retry strategies, and safe error handling ensures cross-service Saga operations remain consistent.