Kettle
Outdated Page
This page is several years old and does not usefully describe the current version of Kettle. Consult its own README in its repository for up to date information at https://github.com/fluid-project/kettle
What is Kettle?
Kettle is a framework for building server-side Web applications using JavaScript and Node.js. Originally created by the Fluid community for the Fluid Engage mobile application, Kettle is designed to provide a quick and easy way to deliver data feeds and rendered markup on the server. Kettle uses Fluid Infusion throughout, offering client-side JavaScript developers a natural starting point for building server-side code. Because it is written in JavaScript, Kettle provides the opportunity to share code between client and server seamlessly. As a result, the architectural partitioning of responsibilities between client and server can be defined and reconfigured based on the requirements of the application, not based on programming language boundaries.
There are several primary development metaphors in Kettle such as Servers and Apps. Servers represents a single instance of the Node.js HTTP server. A Server is a container for 0 or more Apps (see further). Developers have an option of deploying a number of Servers that themselves contain 0 or more Apps. The source code for the Server can be found here: Server. The App is a component that represents a single purpose application deployed within a particular Server. The source code for the App can be found here: App.
Kettle also offers built-in support for the CouchDB database, a document-based store that is a good match for JavaScript-based, collaborative Web applications.
What's the Status of Kettle?
Kettle is an emerging project of the Fluid community and represents a major priority for us alongside Infusion. Though it is still in early development, Kettle provides critical infrastructure for the Global Public Inclusive Infrastructure's realtime personalization framework. To this end, Kettle is actively being supported and developed by a group of contributors from across the Cloud4all, GPII, and Fluid projects.
Initial documentation for Kettle is available in the GPII wiki, and further documentation, tutorials, and sample code are planned.
Next Steps
As part of the GPII and FLOE Projects, 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:
- Extended to support better URL routing and rewriting
- Documented
Technologies
Kettle is built on top of Node.js, a event-based, asynchronous platform built using Google's V8 JavaScript engine.
Dependencies
Kettle currently depends on the following frameworks and libraries: