<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">
In reference to the Oslo Wiki[1] , in the Incubation section, principle number 2:<br>
<br>
<blockquote style="margin: 0px 0px 0px 40px; border: none; padding: 0px; ">"The API is already in use by a number of OpenStack projects" </blockquote>
<br>
And in the Incubation section:<br>
<br>
<blockquote style="margin: 0px 0px 0px 40px; border: none; padding: 0px; ">"The process of developing a new Oslo API begins by taking code which is common to some OpenStack projects and moving it into the oslo-incubator repository."</blockquote>
<br>
Where should cross-project code be incubated in the phase *before* it is implemented by multiple projects? The Heat and Nova teams are working together on StructuredStateManagement[2] and want to start something new, but are struggling to determine where to
 put it. This is probably evolve into an Oslo library, but it's not obvious where it should live in the mean time. Should it be a splinter off of Heat? In Nova? Neither option seems quite right.<br>
<div><br>
</div>
<div>Have we considered having an OpenStack "Common" service that's designed to be a pluggable general purpose service on which multiple general-purpose utility services can be hung? I could imagine actually putting multiple services in here, such as Heat, Convection[3]
 (using StructuredStateManagement), EventScheduler[4], etc. </div>
<div><br>
</div>
<div>Ideally I'm looking for a project that's central like Oslo, but intended for hosting API controlled services, and that welcomes cooperative development from multiple teams to make a new modular code base that serves multiple projects in a way that it can
 be safely treated as a critical dependency.</div>
<div><br>
</div>
<div>In the absence of such a project, the only way I can think of addressing this is to have an existing project volunteer to incubate the common service(s). That would almost certainly mean changing the scope for the original project.</div>
<div><br>
</div>
<div>Thanks,</div>
<div><br>
</div>
<div>Adrian Otto</div>
<div><br>
References:<br>
[1] <a href="https://wiki.openstack.org/wiki/Oslo">https://wiki.openstack.org/wiki/Oslo</a></div>
<div>[2] <a href="https://wiki.openstack.org/wiki/StructuredStateManagement">https://wiki.openstack.org/wiki/StructuredStateManagement</a><br>
<div>[3] <a href="https://wiki.openstack.org/wiki/Convection">https://wiki.openstack.org/wiki/Convection</a></div>
<div>[4] <a href="https://wiki.openstack.org/wiki/EventScheduler">https://wiki.openstack.org/wiki/EventScheduler</a></div>
</div>
</body>
</html>