The primary development metaphor in Kettle are Spouts, which represent high-level handlers for incoming Web requests and outgoing responses. By default, Kettle provides two types of Spouts that can be defined declaratively; markup spouts, which provide rendered HTML content, and data spouts, which handle JSON-based feeds. Programmers who need a lower level of abstraction can drop down to a CherryPy-inspired API where individual handlers can be bound to specific URL paths in the application.
Kettle is currently a proof-of-concept framework which has seen some limited real-world testing under load through the Fluid Engage mobile pilot at the McCord Museum in Montreal. It has not yet been released as a standalone product, and is still very much under active development. It has not yet been documented (at all!), and APIs will change.
As part of the FLOE Project, Kettle will be used to develop RESTful server-side data feeds and markup transformers for storing and sharing content accessibility information, user preferences, and captions.
As part of this work, Kettle will be:
- Modularized, so it's easy to drop a Web app into the Kettle container and run it
- Extended to support better URL routing and rewriting
More information about our initial technology motivations for Kettle are documented in the Engage Server-Side Technology page.