Версия источника: 4880e8b4372c96001c2e052be28b68a95d31252b
Синхронизировано: 2026-11-09T11:15:07.649Z
Источник: https://github.com/sergey-from-riders/vibecoding-base/tree/4880e8b4372c96001c2e052be28b68a95d31252b

<a id="database-transactions"></a>

# Транзакции

## Коротко

Связанные операции должны завершиться вместе или вместе отмениться.

## Плохо

```text
Списать остаток.
Сбой.
Заказ не создан.
```

## Хорошо

```sql
BEGIN;
-- Проверить и списать остаток.
-- Создать заказ.
COMMIT;
```

## Почему

Частичный результат нарушает бизнес-инвариант.

## Когда применять

Транзакция БД не включает внешний API; для внешних эффектов используйте outbox или сверку.

## Как проверить

- Остановите операцию между шагами и проверьте целостность.

## Человек

Определяет операции, которые должны выполняться целиком.

## Агент

Готовит схему или миграцию, проверяет граничные значения и совместимость с текущими запросами.

Контроль результата:

- Остановите операцию между шагами и проверьте целостность.

## Источники

- [PostgreSQL: Documentation: 18: 3.4. Transactions](https://www.postgresql.org/docs/18/tutorial-transactions.html)

Уровень: Обязательно. Проверено: 2026-11-09. Изменено: 2026-11-09.

[Исходный файл](https://github.com/sergey-from-riders/vibecoding-base/blob/4880e8b4372c96001c2e052be28b68a95d31252b/registry/standards/database/postgres/rules/transactions.md)
