Invisible propagation
Transactions flow through CLS (AsyncLocalStorage), so a call several services deep joins the same transaction and rolls back together.
No monkey-patching
Built on the actively maintained @nestjs-cls/transactional. TypeORM and Prisma classes are never patched at startup — a library upgrade can’t break you unexpectedly.
Familiar ergonomics
Keep @InjectRepository(Entity), add @Transactional(), done. The decorator-based DX of typeorm-transactional, on a maintained foundation.