Отделите бухгалтерские проводки от отображения: комиссия может быть отдельной строкой истории, оставаясь частью одной атомарной операции перевода. Все связанные записи должны иметь общий идентификатор.
Как обеспечить отдельное отображение комиссии в истории операций, сохранив корректность и атомарность перевода?
Отделите бухгалтерские проводки от отображения: комиссия может быть отдельной строкой истории, оставаясь частью одной атомарной операции перевода. Все связанные записи должны иметь общий идентификатор.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Отделите бухгалтерские проводки от отображения: комиссия может быть отдельной строкой истории, оставаясь частью одной атомарной операции перевода. Все связанные записи должны иметь общий идентификатор.
В одной транзакции фиксируют списание, зачисление и комиссию согласно учётной модели и инварианту баланса. Интерфейс показывает нужную детализацию, не создавая повторное списание ради отдельной строки. Условия комиссии сохраняют в snapshot операции, деньги представляют точно. Повторный запрос защищают idempotency key; внешние платёжные действия требуют дополнительного согласования, поскольку локальный rollback не отменяет уже выполненный перевод провайдера.