Conceptual diagram of a Unit of Work with application and persistence layers

Unit of Work (UoW) in Python with SQLAlchemy: explicit transactions, savepoints, and outbox

Building a Production-Grade Unit of Work (UoW) System in Python with SQLAlchemy When you build complex applications with databases, services, and background jobs, you eventually run into the transaction problem: How do I guarantee all operations happen atomically? How do I handle nested scopes (reuse vs rollback)? How do I ensure events are only published once? How do I protect against duplicate commits when retries happen? The solution is a Unit of Work (UoW) system — a design pattern that wraps all your persistence operations in a clear, explicit transaction boundary. ...

September 26, 2025 · 5 min · Frederico Gago