[ANN] Introducing the Savory Framework

136 views
Skip to first unread message

Tal Liron

unread,
Jun 30, 2011, 8:27:52 PM6/30/11
to mongod...@googlegroups.com

I'm happy to announce an early release of the first open source, super-scalable, comprehensive web development framework for MongoDB, featuring strong integration with the Ext JS and Sencha Touch client frameworks:


http://threecrickets.com/savory/

Savory is still in "Early Bird" mode and needs some more fleshing out, testing and documentation, but the core features are all there and ready to rumble.

FEATURES

The Savory Framework offers especially scalable and robust solutions for common web application needs. A partial list includes:
  • authentication, with support for logging in from Facebook, Twitter, Windows Live and OpenID;
  • fine-grained user permissions;
  • new user registration, with captcha and email validation;
  • email notification on a truly massive scale;
  • per-user internationalization, with built-in consideration of right-to-left languages;
  • easy, fast text search with Lucene;
  • discussion forums, including threaded comments that can be attached to any documents;
  • wiki-like functionality with support for site-wide revisions, Tactile, Markdown and more;
  • blog functionality, including support for Linkback and Trackback;
  • sitemap generation, supporting millions of URLs;
  • JSON-RPC and XML-RPC, client and server;
  • RSS syndication;
  • shopping carts with PayPal integration;
  • HTML forms with server- and client-side validation;
  • Gravatar;
  • robust support for asynchronous processing ("please wait while searching for you flights...");
  • and -- if you can believe it -- more...
We're especially pleased with Savory's Ext JS integration: within minutes of dev work you can connect any MongoDB collection to a client-side editable grid, tree or chart. A clean Ext Direct implementation creates a seamless RPC from client to server.

Add Sencha Touch, and you get the fastest MongoDB-backed mobile app development experience. Works on Android, iPhone, Blackberry.

General-purpose backend services include asynchronous events that can be triggered anywhere in the cluster, a powerful data caching mechanism, and a "DRM" (not ORM!) Document-Resource-Mapping system that allows any MongoDB collection to be exposed as an editable RESTful resource in your URI-space. (This offers a customizable variation on MongoDB's REST API.)

Bored or bedazzled with this announcement already? Just jump to the web site and check out all the cool, live demos.

THE DEVELOPMENT EXPERIENCE

Savory offers development agility comparable to that of Rails and Django. Quickly generate HTML based on your data or throw it into powerful Ext JS grids, trees and charts. It is, moreover, lighter than the old SQL solutions: MongoDB's no-nonsense storage does away with the need of a complex ORM layer. Instead, in Savory you work with your data directly in JavaScript, or process it through Savory's flexible iterator framework.

Development tools include a powerful web-based console (almost an online IDE) and a beautiful source code documentation generator. MongoVision is a recommended sister project.

In many ways Savory is a post-MVC, even post-object-oriented framework: the architecture is designed to avoid complex abstractions and layers that are nudged between your code, your data and your subsystems. We don't like wasting time debugging such layers or shoehorning them into our requirements. Nor do we like hacking around an object's encapsulation when it does not fit a simpler, more elegant solution. Never should we have to pay for what we don't want or need.

If you've never used JavaScript on the server, you're in for a pleasant surprise. A Scheme-like language with a C-like syntax, its ability to throw closures everywhere allows for succinct clarity. The combination of JavaScript on the server, in MongoDB and in the client browser means that you never have to switch programming paradigms, and can even share code between environments.

A SOLID BASE

Savory's announcement corresponds with the release of Prudence 1.1, in which it runs.

Prudence is a container and platform for scalable, high-concurrency RESTful web servers written in dynamic languages, featuring JavaScript, PHP, Python, Ruby, Groovy and Clojure editions. Proper caching is baked into its architecture: Prudence works with HTTP (especially conditional HTTP) and robust cache backends (memcached, MongoDB, SQL and Hazelcast) to make sure no representation is generated more times than is absolutely necessary, and no bandwidth is wasted. Prudence comes with a 100-page manual crammed with good advice on how to build scalable, RESTful web applications.

Release 1.1 makes Prudence instantly "cloudable": running instances on a network automatically discover each other and form a high-availability cluster, which can all share state and distribute tasks for redundancy and super-scalability. You can throw your Savory app into a cloud right now. Tested with 100 nodes on EC2!

The scalable combination of Prudence and MongoDB can take your backend very, very far. And Savory makes it even tastier.

"Our web development framework tastes better than yours."

Yours,
Tal Liron,
Three Crickets LLC

Tal Liron

unread,
Jun 30, 2011, 8:39:53 PM6/30/11
to mongodb-user
If you live in Chicago, come to the July 6 2011 MongoDB meetup, where
I will be presenting Savory, and showing some wild MongoDB tricks:

http://www.meetup.com/Chicago-MongoDB-User-Group/events/21369271/
Reply all
Reply to author
Forward
0 new messages