Как открыть транзакцию на уровне use case, передать её репозиториям без зависимости бизнес-логики от ORM и правильно обработать вложенные вызовы. Читать далее
Транзакции в Go через context: одна граница для нескольких репозиториев
Это краткое изложение. Полный текст материала доступен на сайте источника.