Follow-up to #3608380: Finish the engine architecture: role contract interfaces, a TimeoutSweeper service, a stateless executor and unit coverage for the leaf services, which introduced ProcessControlInterface, IncidentActionsInterface and RecoveryInterface with WorkflowEngineInterface extending all three. The submodule consumers (orchestra_inbox, orchestra_eca, orchestra_api, orchestra_content, the interaction stack, the UI) still type-hint the full aggregate.

Sweep every consumer to declare only the role it uses (almost all need ProcessControlInterface alone, and most of those only a method or two). A mechanical, per-consumer change with no behavior impact: it makes each module's actual engine dependency visible and its tests easier to mock, and it should land before 1.0 freezes the contract.

Issue fork orchestra-3608384

Command icon Show commands

Start within a Git clone of the project using the version control instructions.

Or, if you do not have SSH keys set up on git.drupalcode.org:

Comments

mably created an issue. See original summary.

mably’s picture

Status: Active » Needs review

Opened MR !282: 21 consumers across the root module and the submodules narrow to ProcessControlInterface; the two orchestra_ui classes that genuinely mix roles keep the aggregate. The sweep exposed one real gap, fixed here: autowired hook classes resolve constructor hints by interface name, so the three role interfaces gained container aliases to orchestra.engine.

No behavior change. Verified locally: root kernel plus unit (196), the kernel suites of every touched submodule (202), all Functional in Docker (37), phpcs and cspell.

  • mably committed 5fdeb446 on 1.x
    task: #3608384 Narrow the submodule engine type hints to the role...
mably’s picture

Status: Needs review » Fixed

Now that this issue is closed, review the contribution record.

As a contributor, attribute any organization that helped you, or if you volunteered your own time.

Maintainers, credit people who helped resolve this issue.

Status: Fixed » Closed (fixed)

Automatically closed - issue fixed for 2 weeks with no activity.