开发者

Considering an Erlang web framework to learn and use in production

I’ve started learning Erlang a few days ago and it’s definitely a very interesting language and very suitable for web development (back end at least). I am going to experiment and eventually settle with one Erlang web framework to use for my next project. Since Erlang is “new” is kind of hard to decide which framework to use (i.e. lack of documentations and blog posts). So far my googleing has returned me 3 results and I am wondering anyone who has experience in Erlang (especially Erlang web development) please comment on the pros and cons on each framework and add any missing frameworks.

Project requirement:

  1. Web application
  2. Database
  3. HTTPs
  4. Storing files (e.g. images)
  5. PDF manipulation
  6. Dynamic logic comparison (e.g. LHS == RHS etc)

Erlang web framework:

  1. Nitrogen (preferred so far)
  2. Erlyweb
  3. BeepBeep
  4. Chicago Boss
  5. Erlang Web
  6. webmachine

Erlang database:

  1. Mnesia (preferred so far)
  2. CouchDb
  3. MongoDB

Concrns:

  1. Nitrogen

    • JavaScript generation

      Since Nitrogen generates and embeddes JavaScript code on to the page which increased the page size. I am开发者_StackOverflow中文版 not sure if it’s even possible to somehow “separte” the generated JavaScript code from raw html (somehow it can be cached by browser) in order to reduce data transferred down the wire. But I think in general event model and auto wire event is very suitable for application type but not so much for content/public facing type.


This blog post compares a few Erlang web frameworks.


Personally, I went with mongodb (cos it has native erlang drivers and other advantages) and webmachine for URL dispatching. I like the idea of having very simple wireframe HTML and mostly piping JSON from webmachine and mongodb to the front end to be processed by JQuery or whatever. However, another interesting front end would be cappuccino.


I'm working with CouchDb. Here is a quick start guide I have written. It is in russian language, but the code samples are clear. I chose this database engine because it was written on Erlang and has a good documentation, samples and libraries on different development languages.

And I'm using BeepBeep, because it is most lightweight framework I have found. Earlyweb is too big for my tasks.


VoltDB (http://voltdb.com/) is an opensource & commercial database, ACID, scalable, and very high throughput (50x from leading OLTP DBMS). VoltDB recently develops erlang client API, by Henning Deidrich. Just join the forum and find henning.


As the previous answer stated, VoltDB provides extremely high performance OLTP functionality (transactions and ACID) at scale. There is an Erlang client library available at http://community.voltdb.com/getinvolved#svn

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜