Feedback on this back-end stack
Problem
I'm planning to setup an scalable architecture capable of providing Web Services on a REST interface where JSON will be sent as a result. The web services will be quite simple for a CRUD web 2.0 app.
I think javascript (nodejs + mongodb) is a good choice for the following reasons:
- Easy to find javascript developers
- Good performance
- Easy to scale
- Shared logic/language or possible reuse of code between database query language, back-end and web-client.
- There are testing and logging frameworks for node
- By the examples I've seen node seems light in terms of the lines of code needed to implement web services.
Questions:
- I think of scaling a node app which supplies a web service as having a central node which will be routing/balancing charge to each of the node instances. Which will also help doing seamless updates, is there any piece of software already implemented which can fit that task?
- Please point all the disadavantages or other advantages you find in this back-end stack
- If you feel this question opens too much of a debate and doesn't fit the stackoverflow policy please indicate a forum where I could get feedback.
- Any other good persistence choices other than MongoDB? Mainly this choice comes from the javascript query language and JSON schemas.
Related Articles
Solution
Regarding your "router" piece:
Since your REST api will be composed of HTTP requests, it's common practice to use a high-speed proxy such as NGINX or HAProxy to distribute requests among the many servers who actually perform the work (in your case, NodeJS servers). This generally works well and allows easy scaling and failover.
Discussion
View additional discussion.