Files

2.6 KiB

Why

Issue #76 made the Registry manager the composition root and lifecycle owner, but design review established that these are responsibilities of one running NenjimHub rather than of the Registry subsystem. The architecture now needs a canonical process contract and an explicit Hub runtime owner before later Journal and process-management work builds on the wrong boundary.

What Changes

  • BREAKING: Replace NenjimApplication with the canonical minimal NenjimProcess component contract.
  • Reintroduce NenjimHub as the global composition and runtime owner, with single-attempt startup and an immutable ordered snapshot of successfully started process IDs.
  • Move Registry construction, the complete hardcoded component graph, explicit process startup, the online point, and the blocking runtime wait into NenjimHubImpl.
  • BREAKING: Reduce NenjimRegistryServiceManager to a passive registration handle that is retained by the Hub and is neither a component nor a process.
  • Add an implementation-only Registry construction boundary that provides read-only service, process, and manager views without exposing the package-private administration interface.
  • Preserve all current component bindings, enabled process choices and order, inactive components, Registry lookup guarantees, and fail-fast startup behavior.
  • Keep com.r35157.nenjim.hubd.Main as the thin configured entry point and update directly affected documentation and JavaDoc.

Capabilities

New Capabilities

None.

Modified Capabilities

  • nenjim-component-registry: Corrects component lifecycle terminology, Registry-manager responsibility, global Hub ownership, startup tracking, and outer bootstrap behavior.
  • assetaz-currency-identity-service: Transfers hardcoded catalogue composition ownership from the Registry manager to NenjimHub.
  • assetaz-ticker-service: Transfers price-source construction and registration ownership from the Registry manager to NenjimHub.

Impact

  • Changes public lifecycle and runtime APIs under com.r35157.nenjim.process, com.r35157.nenjim.hubd, and com.r35157.nenjim.service.registry.
  • Moves the current reference composition from NenjimRegistryServiceManagerImpl to NenjimHubImpl while preserving its operational bindings and sequence.
  • Updates all modern startable reference implementations to the new process contract and removes NenjimApplication without a compatibility alias.
  • Updates the active OpenSpec delta, Nenjim architecture documentation, terminology, and public HTML; no Journal, Context, classloader, configurable autorun, process-manager, stop/restart/health, or business behavior is introduced.