Детерминированное ядро, недетерминированная оболочка
Deterministic Core, Non-Deterministic Shell

Гэри Бернхардт в 2012 году предложил архитектуру «функциональное ядро, императивная оболочка». Автор развивает идею: достаточно требовать не чистоты функций, а детерминизма. Детерминированное ядро принимает решения, недетерминированная оболочка координирует зависимости. В легаси-коде детерминированные ядра разбросаны, как звёзды; их можно собирать, как дефрагментацию диска, постепенно уменьшая площадь недетерминированного кода.
Каждый ужасный беспорядок в кодовой базе, который я видел, содержит внутри одну или несколько гораздо более приятных детерминированных машин состояний. Уверяю вас, они там есть, даже если это неочевидно.