<p dir="ltr">While I agree that a unified endpoint could be a good solution for now, I think that the easiest way of doing this would be by implementing it as an external Neutron service.</p>
<p dir="ltr">Using python entry_points, the advanced service extensions can be loaded in Neutron just like we do today (using neutron.conf).<br></p>
<p dir="ltr">We will basically have a new project for which Neutron will be a dependency (not the other way around!) so that any module of Neutron can be imported/used just like the new code was living within Neutron itself.</p>
<p dir="ltr">As far as UTs are concerned, Neutron will also be in the test-requirements for the new project, which means that any existing UT framework in Neutron today can be easily reused by the new services. <br></p>
<p dir="ltr">This is compliant with the requirement that Neutron stays the only endpoint, giving the ability to the user to load the new services when she wants by configuring Neutron alone, while separating the concerns more easily and clearly.</p>