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

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

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

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

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

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

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

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

Может, у вас в проектах встречался похожий сценарий – расскажите, как вы его решили.
  • Вопрос задан
  • 109 просмотров
Пригласить эксперта
Ответы на вопрос 1
max-kuznetsov
@max-kuznetsov
Главный IT-архитектор
По-хорошему нужен движок для моделирования и контроля бизнес-процессов. С учётом их версионирования. На Java в своё время пользовался Alfresco Activity ( https://www.alfresco.com/products/business-process... ). Есть comunity-редакция. В .NET есть WWF ( https://msdn.microsoft.com/en-us/library/jj684582.aspx ), но я сам им не пользовался.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы