What I do
- Manage database transactions correctly
- Handle distributed transactions across services
- Implement saga patterns for microservices
- Optimize transaction isolation levels
- Ensure data consistency
When to use me
When building systems requiring strong data consistency, distributed systems, or microservices with multiple data sources.
Key Concepts
ACID Properties
- Atomicity: All or nothing
- Consistency: Valid state to valid state
- Isolation: Concurrent execution appears serial
- Durability: Committed data survives failures
Transaction Types
- Implicit vs explicit transactions
- Auto-commit mode
- Savepoints
- Nested transactions
- Read-only transactions
Isolation Levels
- READ UNCOMMITTED: Lowest isolation, may see uncommitted data
- READ COMMITTED: See only committed data (default in most)
- REPEATABLE READ: Same query returns consistent results
- SERIALIZABLE: Highest isolation, full isolation
- Snapshot Isolation: MVCC-based isolation
Concurrency Problems
- Dirty reads
- Non-repeatable reads
- Phantom reads
- Lost updates
- Write skew
Locking
- Shared locks (S locks)
- Exclusive locks (X locks)
- Deadlock detection and handling
- Lock escalation
- Optimistic vs pessimistic locking
Distributed Transactions
- Two-phase commit (2PC)
- Three-phase commit (3PC)
- Saga pattern
- Eventual consistency
- Compensation actions
- Outbox pattern
Best Practices
- Keep transactions short
- Avoid long-running operations
- Use appropriate isolation levels
- Handle deadlocks gracefully
- Test concurrency scenarios
- Monitor transaction metrics