I'd like to discuss plans to refactor the (mostly common) code shared between Nova, Keystone and Glance that handles serialization of request data, deserialization of response data, and the general architecture of the WSGI pipeline. Brian Waldon did some excellent work in Glance to refactor the tight coupling of the Controller with HTTP request and response handling. I'd like to explore ways that this work can be continued and eventually make its way into the openstack-skeleton project. The initial refactoring of the WSGI pipeline in Glance added a wsgi.Resource class that contains a serializer, deserializer and controller. However, the Controller objects (in both Nova and Glance) continue to raise HTTP errors directly through webob.exc.HTTPX objects. One initial refactoring I'd like to see is the complete decoupling of the controller from the protocol that the server is responding on. Eventually, we want Glance to be able to respond on non-HTTP protocols (such as AMQP), and having an entirely decoupled controller allows greater code reuse.