Задать вопрос

Как смоделировать пошаговый бизнес-процесс в приложении?

Есть проект, условно похожий на любое такси-приложение. Мобильный апп, клиент заказывает что-то на определённую дату и адрес, заказ принят одной из «машин», выехал к клиенту, будет через 5 минут, прибыл, началась поездка, по пути заехали в пункт N, окончилась, расплатились. Некие характерные шаги в бизнес-логике.

Логика может ветвиться: если сейчас состояние А, то после него могут быть состояния либо Б либо Д, и никакое другое. После Б может быть В, после В – Г. Похоже на граф.

Вопрос: как лучше хранить и обрабатывать такую логику в бэкэнде и мобильном приложении? Что есть best practice для подобного сценария?

Придётся ли дублировать бизнес-логику в backend + mobile, или можно держать её в одном месте?

Сейчас в прототипе прямо в коде прописаны текстовые метки для каждого возможного состояния, и условия, из какого состояния какие есть возможные следующие. В таблицу БД пишем очередное состояние объекта с датой-временем. Чтобы узнать текущее состояние объекта, выбираем самое недавнее.

Мобильный клиент запрашивает «матрицу» состояний и возможных переходов между ними с бэкенда.

Поменять логику, например, вставить новый шаг в процесс – надо переписывать код. А в идеале, наверное, это всё должно рулиться только данными в БД?

Может, у вас в проектах встречался похожий сценарий – расскажите, как вы его решили.
  • Вопрос задан
  • 109 просмотров
Подписаться 2 3 комментария