Monday, July 6th, 2009
Joyent Smart Platform: Auto-scaling Server Side JS
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
documentation. - 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. - com.google.code.trimpath.template
The trimpath template library provides a simple templating system for your web applications.
For more information see the Trimpath website.
- com.google.code.date
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!





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?
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:
“real” language…….
@Darkimmortal
Here’s a tip: try reading your comment out loud, and if you sound like a twat, refrain from hitting ‘Submit Comment’
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.