How do you manage Transactions in Clean Architecture?

Updated Apr 28, 2026

Short answer

Transactions should be managed at the Use Case level, often through a Unit of Work interface.

Deep explanation

Since a Use Case defines a single atomic action (like 'Place Order'), it must ensure that all database operations succeed or fail together. We define a 'Unit of Work' interface in the Use Case layer, which the Infrastructure layer implements using database transactions.

Real-world example

Transferring money between two bank accounts requires both a debit and a credit to succeed.

Common mistakes

  • Putting transaction logic (like @Transactional annotations) inside the Entity classes.

Follow-up questions

  • Is it okay to have transactions in the Repository layer?

More Clean Architecture interview questions

View all →