The Dissident Project
Here is the original concept of the framework:
Using Erlang on the backend will allow the system to fully utilize a single system as well linearly and massively scale up to a huge cluster as the demand and need arise. Furthermore due to that nature of Erlang, the system can be highly fault tolerant and straddle numerous geographically distant hosting providers and hosting provider boundaries. The backend system is currently targeted to include the following components:
- mnesia as the persistent store (look ma’ no ORM)
- mochiweb as a lightweight HTTP server
- webmachine as "a layer that adds HTTP semantic awareness on top of the excellent bit-pushing and HTTP syntax-management provided by mochiweb" -- http://blog.therestfulway.com/.
- Your webmachine resources - http://code.google.com/p/webmachine/wiki/WebmachineResources
Through these three technologies, developers will be able to build a full API that can scale across multiple boxes. The concept of Dissident is to isolate logical pieces so they can be tested and reused without modification. The entire backend is simply building a usable RESTful Web Service THAT DOES NOT dump to a template engine for pushing content, and instead delivers data via REST requests and JSON response. Nothing magical, nothing special, nothing you wouldn’t provide to any of your 3rd parties right? Except you have to eat your own dog food when it comes to Dissident. Your API is what will drive your entire User Interface so you have to build it right, you are forced to not "cut corners" and make your application such that it is testable, repeatable, and documentable.
The cool things you might have missed
I can’t stress the main point the most, within Dissident designers design, coders code. There is no templating, no crappy untestable views, everything is 100% automated testable (TATFT) and everything is fault tolerant.
Or at least it will be when it is built.