transactional-patterns
Installation
SKILL.md
Transactional Patterns
Establish the boundary
- Inspect the project's Boot/Framework version, transaction manager, persistence technology, rollback configuration and caller before changing propagation.
- Place multi-step business transactions at the application/service boundary. Preserve Spring Data repository transactions; repository annotations are not inherently wrong.
- Default propagation is
REQUIRED— joins existing transaction or creates one - Use
readOnly = truefor appropriate read units of work. It is an optimization hint, not write prevention, authorization or automatic routing to a read replica. - Keep existing architecture and transaction-manager choices. A local database transaction does not make writes to another database or an HTTP provider atomic.
The snippets below are illustrative; domain classes and imports come from the application. Adapt the service template and compare the good and bad examples when editing a service.