DEV Community

Building a Database Written in Node.js from the Ground Up

Margo McCabe on August 05, 2020

Node is lightweight & scalable, allows us to develop quickly, and npm has incredible packages. The founding team at HarperDB built t...
 
kylebernhardy profile image
Kyle Bernhardy

Hi Ankush,

Apologies for the confusion, Stephen was saying Go & Node are considered on par in popularity & community support. As far as performance goes, I agree, historically Go has had threading baked in while Node has been CPU bound until the release of Node 12. We had extensive experience in scaling Node applications in our previous company & were able to work around Node being CPU bound by leveraging the native cluster library. This allows for embarrassingly parallel processing and also allows a developer to offload work from a main process. With Node 12 there is now threading with worker threads which would be more in alignment with Go. I don't claim that Node has superior performance to Go on their own merits :) but the Node community has been a huge help to us with robust libraries that we have used to build our product. Also we can bind C/C++ libraries as Native Node Modules like LMDB which is a wickedly fast Key Value store. Node.js was also what our team knew when we started HarperDB & creating a net new company & product is such a heavy lift learning a new programming language would have added a lot of stress & extended our go to market time. In the end we have been very happy with Node & our benchmarks have shown us outpacing MongoDB & other products on the market. I would love to get your thoughts on Go and what you love about it.

Cheers!

Collapse
 
andrewbaisden profile image
Andrew Baisden

Cool article nice to see Node getting more positive exposure.

Collapse
 
margo_hdb profile image
Margo McCabe

Thanks Andrew! Yes, we are huge Node fans.

Collapse
 
andrewbaisden profile image
Andrew Baisden

I created a HarperDB account today keen to see what it can do 😊

Thread Thread
 
margo_hdb profile image
Margo McCabe

Awesome, we look forward to hearing your thoughts! You can always hop in our Community Slack to connect with our team if you have questions etc.

Collapse
 
lotvall profile image
Alexander Lötvall • Edited

Very inspirational, too bad this is not open source I would have loved to read the code behind this project! But great job nonetheless! Excited to see where this is going!

Collapse
 
margo_hdb profile image
Margo McCabe

Hey Alexander, thanks for the kind words! We are actually considering open sourcing the product in the future, and working with our executive team and board on the decision and timing.

Collapse
 
lotvall profile image
Alexander Lötvall

Very cool, excited to see where this goes!

Collapse
 
margo_hdb profile image
Margo McCabe

Thank you Ankush! Yes, many people were surprised at first. Some saw Node as a fad or as a bad fit for enterprise applications, but they were wrong! Node has provided amazing benefits for many teams and applications and is definitely here to stay. :)

Collapse
 
xlpacman805 profile image
Johnny Meza

So fresh, so clean!

Collapse
 
petroskoulianos profile image
Petros Koulianos

Just made an account to see whats going on. How can harperdb be faster than mongodb almost in all cases ???

Collapse
 
margo_hdb profile image
Margo McCabe

Hi Petros, thanks for creating an account! MongoDB is optimized for high scale writes, but not for reads. HarperDB's data storage algorithm written on top of LMDB enables both high scale reads & writes, resulting in high performance overall. (Our benchmark and LMDB deep dive might be interesting as well). Let us know if you have any questions or feedback once you check it out!

Collapse
 
abesamma profile image
A.B. Samma

Impressive achievement. Kudos the team for not spooning out their ❤️. 😉

Collapse
 
margo_hdb profile image
Margo McCabe

Thank you! Haha yes, that comment was pretty funny. 😁