Обработка сложных транзакций - PullRequest
0 голосов
/ 06 ноября 2019

Мне нужна помощь в определении того, как должен обрабатываться сложный поток между внешним интерфейсом, внутренним сервером (и базой данных).

В настоящее время я работаю над веб-приложением, которое должно обрабатывать регистрацию вещей, в которых участвуют участники. конференции и каждый участник может быть зарегистрирован для нескольких событий. Существует дополнительный уровень сложности, заключающийся в том, что данный пользователь должен иметь возможность зарегистрировать несколько участников. С точки зрения последовательности это будет выглядеть так:

Пользователь входит в приложение и запускает новую регистрацию. Пользователь добавляет одного или нескольких участников к регистрации. Для каждого добавленного участника пользователь выберет одно или несколько событий для регистрации.

Я предполагал, что создание большого объекта json и передача его из внешнего интерфейса в конец должно быть путем вперед. Он содержит все данные для всех атрибутов регистрации, включая пользователя, участников и события участников, инкапсулированные в одном объекте. Однако, если что-то пойдет не так на сервере, это может означать, что весь объект потерян или, по крайней мере, не сохранен. Поскольку данные в конечном итоге сохраняются в 3 таблицы (как у меня сейчас, в любом случае), это означает три разные операции сохранения (опять же, как у меня сейчас, в любом случае).

С другой стороны, мне было интересно, может ли лучший подходбыть управлять этим из внешнего интерфейса. Тогда последовательность может выглядеть следующим образом:

  1. собрать всю информацию о внешнем интерфейсе через форму, а затем
  2. вызвать API REST для сохранения регистрации и возврата идентификатора регистрации
  3. вызовите API REST для сохранения первого участника и получения идентификатора участника
  4. затем вызовите API REST для сохранения событий для каждого участника
  5. повторите 3 и 4 для каждого участника.

Буду признателен за любые мысли о наилучшем подходе.

...