FSM на стероидах: как мы приручили 16+ статусов помещения
В PDP мы собрали конечный автомат для жизненного цикла помещения: 16+ состояний, нелинейные и обратные переходы, защищённые статусы и координация с 4+ подсистемами через event-driven подход.

В PDP мы собрали конечный автомат для жизненного цикла помещения: 16+ состояний, нелинейные переходы и даже обратные. Звучит как обычный workflow, а по факту — квест уровня “почему статус внезапно откатился в пятницу в 18:47”.
Переходы у нас зависят от контекста: тип приёмки, критичность дефекта, есть ли активные замечания. Самое важное — выделили 7 защищённых статусов, которые не откатываются из-за запоздалого создания замечания. Иначе можно словить уже не баг, а юридически опасную ситуацию.
Под капотом — координация с 4+ подсистемами через event-driven подход. Отдельно закрывали тему race conditions, чтобы события не устраивали дедлок-дискотеку и не ломали бизнес-логику.
На фоне хайпа вокруг надёжных distributed workflows это ещё раз подтверждает: иногда лучший “AI” в системе — это хорошо спроектированный FSM 😄