Monday, July 6th, 2009

Joyent Smart Platform: Auto-scaling Server Side JS

Category: Server

James Duncan of Joyent has been chatting about his awesome autoscaling JavaScript platform for awhile, and it just launched:

The Smart Platform is an open source Platform-as-a-Service, allowing you to develop and deploy applications to the cloud, while letting the platform take care of all the system administration and scaling problems your application faces.

You pay for what you use in Smart and James chatted about how he ties into Spidermonkey opcodes to do this. Very cool :)

When you use Smart, you get JavaScript 1.8 goodness thanks to SpiderMonkey, and you also get extensions such as File, Image, MediaFile, HTTP, and other helpful beasts. You can tie into other libraries via system.use which then loads in items such as:

  • com.joyent.Resource


    The Resource library provides an wrapper for the system.datastore functions, which are, on their own
    quite raw. The Resource library provides mechanisms to create persistant object types, with appropriate
    save, search, and delete methods. For more information see the Resource

  • com.joyent.Sammy


    The Sammy library provides a Sinatra-like framework for the Smart Platform. For more information,
    see the Sammy documentation.

  • com.github.ashb.Template

    The Template library provides a templating system for your web applications. For more information, see
    the Template documentation.

  • org.json.json2


    The json2 library provides standardized JSON encoding and decoding. For more information see the
    JSON2 documentation.



    The trimpath template library provides a simple templating system for your web applications.

    For more information see the Trimpath website.



    The datejs library provides advanced, localized date formatting and parsing.

    For more information see the datejs website.

  • info.webtoolkit.Base64


    Provides base64 encoding/decoding for JavaScript

    For more information see the webtoolkit website.

  • net.goessner.wiky


    Provides bi-directional wiki-style markup processing to the String class.

    For more information see the wiky website.

Good stuff, and you can peak at the platform itself, all in github!

Posted by Dion Almaer at 11:59 pm

2.9 rating from 15 votes


Comments feed TrackBack URI

Like any “scalable” system, the big question is “what’s the data store?”

Is it ACID compliant? Or does it trade some of that away for easier scalability? If so, what are the tradeoffs? What are good practices on how to lay out your data? Which problem domains work especially well for this data store, and which don’t?

What kinds of queries or operations should you expect to have to write yourself in the application layer should you wish to use them?

Comment by charlieok — July 7, 2009

First we get Javascript libraries for people who are too stupid to learn Javascript (even if they weren’t intended for that, the truth is that they are being used that way), and now we get yet another server-side Javascript implementation for people who are too stupid to learn a real language. D:

Comment by Darkimmortal — July 7, 2009

“real” language…….

Comment by TNO — July 7, 2009

Here’s a tip: try reading your comment out loud, and if you sound like a twat, refrain from hitting ‘Submit Comment’

Comment by bogphanny — July 7, 2009

I have played with over the last few days, and it is amazing! One of the key points that was missed is there is no deploy… The entire process is essentially a GIT PUSH.

Comment by silentrob — July 8, 2009

Leave a comment

You must be logged in to post a comment.