3 ms·
1. https://www.datalanche.com https://www.datalanche.com 2. The correct, proper answer is very, very long. Too long for a HN comment. The short version is that
by rpedela 13y ago
1. https://www.datalanche.com https://www.datalanche.com
2. The correct, proper answer is very, very long. Too long for a HN comment. The short version is that the product is I/O heavy since it mostly just queries a database and returns the results to the user over HTTPS. Node is primarily designed for this use case.
3. Per-query memory overhead is less than a threaded approach. Javascript is one of the fastest scripting languages when it comes to string manipulation which is what the API server does besides I/O. Node itself is written in C/C++ so it is quite fast too.
4a. Being single-threaded, it is very sensitive to CPU-bound tasks. I am actually working on refactoring some code to support streaming because there is an edge case that is CPU-bound and stalls the whole process.
4b. A big downside for my use case is handling 64-bit integers and numerics since Javascript does not natively support these data types, but are very important to support in a database product. We have worked around it using strings. The API server does little computation itself, so it isn't that big a deal.
4c. If you are doing a lot of CPU-bound work or computation with large numbers, then I strongly recommend not using Node. Otherwise it is probably okay even if your use case is not what Node is primarily designed for.
I should also point out that I have been developing software for a long time and have learned to become skeptical of the latest language, framework, tool, etc. I have seen so many of them come and go. It took some convincing for me to decide on Node for Datalanche. I am a big believer is picking the right tool for the job rather than the latest trend. I will be the first to say one should pick Node because it is the best for the use case.
- chrisabrams 13y agoAPI servers seem to be the most popular use case that I've seen. That's interesting about using strings to work with 64-bit integers. Well said on picking the right tool for the job.
- ChikkaChiChi 13y agoThank you for the fantastic insight! This is one of the better, simplified versions of the pros and cons of Node
- rpedela 13y agoYou are welcome. :-)