fintech-fab/fintech-fab.ru

Калькулятор поведения

Opened this issue · 0 comments

Нужен сервис, который будет рассчитывать и решать, как вести себя какой-то внешней системе, когда у нее возникает некоторое событие.

Это выглядит примерно так:

image

Или - то же самое событие, но с другими условиями, когда система получает два решения одновременно:

image

Условия задачи таковы, что система "Клиент" является очень "глупой" и не может принять решение даже по самым очевидным действиям.

Калькулятор будет получать события по http-запросу или из сервера очередей.
Входящее событие представляет собой строковый код (sid - уникальное имя события - я на улице), и набор уточняющих данных (я мокрый, идет дождь).

Калькулятор хранит правила, по которым он будет принимать решение. Для последней схемы - на одно и то же событие "я на улице" будет два правила::

// правило первое
| 1 | im_on_street | rain === true | go_home |
// правило второе
| 2 | im_on_street | rain === true AND umbrella === true | use_umbrella |

Выражение rain === true является псевдо-языком, который означает, что "если в данных события есть ключ rain и он равен true".

В данном примере при входящем событии сработают оба правила, следовательно калькулятор должен отправить два сигнала - go_home и use_umbrella.

Предметная область (базовая схема таблиц в базе данных):

image

Условия реализации:

Задача должна быть решена на основе Laravel в виде пакета (http://laravel.com/docs/packages)