Click Below to Get the Code

Browse, clone, and build from real-world templates powered by Harper.
Blog
GitHub Logo

Why Choose Node.js to Code Your Database?

The author explains why Harper is written in Node.js instead of more traditional languages. He describes how Node’s event-driven model and serverless compatibility make it a good fit for building a modern database.
Blog

Why Choose Node.js to Code Your Database?

By
Stephen Goldberg
October 3, 2017
By
Stephen Goldberg
October 3, 2017
By
Stephen Goldberg
October 3, 2017
October 3, 2017
The author explains why Harper is written in Node.js instead of more traditional languages. He describes how Node’s event-driven model and serverless compatibility make it a good fit for building a modern database.
Stephen Goldberg
CEO & Co-Founder

A lot of people have asked me the question “Why did you build Harper in Node.js?” or something similar in a less polite way. To be honest when I first saw Node.js, I hated it. I resisted, hard. I felt that Java developers like myself were REAL developers, and folks developing in Node were just banging on a keyboard producing random outcomes.  Eventually, I gave in to the wave - it was AWS Lambda functions which really pushed me in the Node direction, and I started to realize the error of my ways. 

A Node.js Learning Curve

For the first 3 months using Node.js, I HATED IT. I hated how variables were not typed and a string could become an int and back to a string. I hated the callback hell. I remember debugging

if(let i =1){
  do something 
}

for over an hour before realizing that i was becoming 1 in the if statement. It drove me crazy.  

That said, over the first three months, I began to learn Node's quirks. My hate slowly turned to acceptance, and my acceptance quickly turned to love. Coding in Node.js has renewed my passion for software development, and has brought enjoyment back to the process. 

Benefits of Node.js

As we dove deeper into Node.js we continued to discover things about it that we found incredibly helpful.

Kyle found async, probably the single greatest library in npm that solved some major problems for us. We no longer were trying to do looping callbacks, or using massive sets of nested code. We were able to use things like async.each and async.waterfall to solve our problems. Now we can handle callbacks elegantly with a reliable library that does the heavy lifting for us.   

I began to see that we were coding at a speed that was much much faster than we had in Java. Things that would take us months previously, now took us days. Additionally, most code schools, like Turing here in Denver, are teaching some Node.js framework so it made recruiting a lot easier.  

I also loved that my computer was not eaten alive by the JVM every time I spent a few hours coding something or had accidentally left my server running. One of the major benefits of Harper as a database is that it uses almost no resources while at rest. In fact, the first time I went to look for it in top Zach had to explain to me that you could page down in top, because not only was Harper not in the first set of results, it was the last (Richard Clayton discusses this difference between Node.js and Java in more detail here). 

From an IoT perspective, this is huge, as the hardware on the edge doesn't always have massive specs and utilizing database management software that can more elegantly and efficiently utilize that hardware is critical. Because Node.js is cross platform, we were able to release our first version with distributions for Linux, Mac, ARM6, ARM7, and ARM8.  

Harper and Node.js

From a scaling perspective, Node’s resource management is important to Harper as the product can scale massively without a huge hardware budget. In fact, in some of our initial testing, we were able to handle the same load and more as SAP HANA running on hardware that was 32x smaller (more about that in a future post). Furthermore, the package cluster allows Harper to better utilize hardware by vertically scaling with the machines hardware. 

Additionally, for IoT and IIoT, Harper being written in a lightweight framework like Node.js allows it to be at time of publishing, under 65MB with the entire Node engine and all its dependencies included in the build. This is great as you can run Harper directly on your micro-computing devices.  

I am an impatient man. For those who know me, they would probably say that is an understatement. Eclipse and even IntelliJ drove me crazy when coding in Java. I couldn't stand how long it took for my server to spin up. With Node, my server is up and running in sub-second time allowing me to do more robust unit testing and producing higher quality code. Furthermore, in the event that a Node.js app crashes in a production environment, it can be back up and running in sub-second time.  

NPM is Awesome

I love how easy it is to get anything done in Node.js. I have always hated how difficult package management is in Java. With Node.js not only does npm, a node repo management solution, make things amazingly simple; the Node.js community is incredible. In fact according to Stackoverflow's developer survey 47% of projects last year were written in Node.js! Npm has over 350,000 packages currently available and is the largest package management solution in the world.

Npm is an incredible resource. Almost every time we are trying to solve a problem we look to npm and the solution is there. For example, when I was tackling our clustering solution; we spent a lot of time thinking about how to design it. We realized our design looked a lot like a chat messaging app. Enter socket.io, the backbone of Harper's clustering capability. Connection management is built in and hardened, and messaging is reliable and easy.    

Another example - Kyle was trying to tackle complex mathematics for our SQL capabilities. As Harper is an HTAP database, not only are we focused on scale but we are also focused on providing robust analytical capability. Again we looked to npm and by leveraging Math.js, Kyle was able to implement some truly incredible mathematical capability within our SQL functions. As a result, we have things like unit conversions, and shortly will have GEO spatial query as well. 

Node.js is the Future

A lot of folks see Node.js as a fad or as something for startups, but not a good fit for enterprise applications. Those folks are wrong. At Harper, we are excited to be on the forefront of bringing Node.js to the enterprise. Harper is the first enterprise class database written in Node.js. Node has allowed us to quickly develop a product that is lightweight, easy to use, and incredibly stable.   

If you want to learn more, you can download our Community Edition today.

A lot of people have asked me the question “Why did you build Harper in Node.js?” or something similar in a less polite way. To be honest when I first saw Node.js, I hated it. I resisted, hard. I felt that Java developers like myself were REAL developers, and folks developing in Node were just banging on a keyboard producing random outcomes.  Eventually, I gave in to the wave - it was AWS Lambda functions which really pushed me in the Node direction, and I started to realize the error of my ways. 

A Node.js Learning Curve

For the first 3 months using Node.js, I HATED IT. I hated how variables were not typed and a string could become an int and back to a string. I hated the callback hell. I remember debugging

if(let i =1){
  do something 
}

for over an hour before realizing that i was becoming 1 in the if statement. It drove me crazy.  

That said, over the first three months, I began to learn Node's quirks. My hate slowly turned to acceptance, and my acceptance quickly turned to love. Coding in Node.js has renewed my passion for software development, and has brought enjoyment back to the process. 

Benefits of Node.js

As we dove deeper into Node.js we continued to discover things about it that we found incredibly helpful.

Kyle found async, probably the single greatest library in npm that solved some major problems for us. We no longer were trying to do looping callbacks, or using massive sets of nested code. We were able to use things like async.each and async.waterfall to solve our problems. Now we can handle callbacks elegantly with a reliable library that does the heavy lifting for us.   

I began to see that we were coding at a speed that was much much faster than we had in Java. Things that would take us months previously, now took us days. Additionally, most code schools, like Turing here in Denver, are teaching some Node.js framework so it made recruiting a lot easier.  

I also loved that my computer was not eaten alive by the JVM every time I spent a few hours coding something or had accidentally left my server running. One of the major benefits of Harper as a database is that it uses almost no resources while at rest. In fact, the first time I went to look for it in top Zach had to explain to me that you could page down in top, because not only was Harper not in the first set of results, it was the last (Richard Clayton discusses this difference between Node.js and Java in more detail here). 

From an IoT perspective, this is huge, as the hardware on the edge doesn't always have massive specs and utilizing database management software that can more elegantly and efficiently utilize that hardware is critical. Because Node.js is cross platform, we were able to release our first version with distributions for Linux, Mac, ARM6, ARM7, and ARM8.  

Harper and Node.js

From a scaling perspective, Node’s resource management is important to Harper as the product can scale massively without a huge hardware budget. In fact, in some of our initial testing, we were able to handle the same load and more as SAP HANA running on hardware that was 32x smaller (more about that in a future post). Furthermore, the package cluster allows Harper to better utilize hardware by vertically scaling with the machines hardware. 

Additionally, for IoT and IIoT, Harper being written in a lightweight framework like Node.js allows it to be at time of publishing, under 65MB with the entire Node engine and all its dependencies included in the build. This is great as you can run Harper directly on your micro-computing devices.  

I am an impatient man. For those who know me, they would probably say that is an understatement. Eclipse and even IntelliJ drove me crazy when coding in Java. I couldn't stand how long it took for my server to spin up. With Node, my server is up and running in sub-second time allowing me to do more robust unit testing and producing higher quality code. Furthermore, in the event that a Node.js app crashes in a production environment, it can be back up and running in sub-second time.  

NPM is Awesome

I love how easy it is to get anything done in Node.js. I have always hated how difficult package management is in Java. With Node.js not only does npm, a node repo management solution, make things amazingly simple; the Node.js community is incredible. In fact according to Stackoverflow's developer survey 47% of projects last year were written in Node.js! Npm has over 350,000 packages currently available and is the largest package management solution in the world.

Npm is an incredible resource. Almost every time we are trying to solve a problem we look to npm and the solution is there. For example, when I was tackling our clustering solution; we spent a lot of time thinking about how to design it. We realized our design looked a lot like a chat messaging app. Enter socket.io, the backbone of Harper's clustering capability. Connection management is built in and hardened, and messaging is reliable and easy.    

Another example - Kyle was trying to tackle complex mathematics for our SQL capabilities. As Harper is an HTAP database, not only are we focused on scale but we are also focused on providing robust analytical capability. Again we looked to npm and by leveraging Math.js, Kyle was able to implement some truly incredible mathematical capability within our SQL functions. As a result, we have things like unit conversions, and shortly will have GEO spatial query as well. 

Node.js is the Future

A lot of folks see Node.js as a fad or as something for startups, but not a good fit for enterprise applications. Those folks are wrong. At Harper, we are excited to be on the forefront of bringing Node.js to the enterprise. Harper is the first enterprise class database written in Node.js. Node has allowed us to quickly develop a product that is lightweight, easy to use, and incredibly stable.   

If you want to learn more, you can download our Community Edition today.

The author explains why Harper is written in Node.js instead of more traditional languages. He describes how Node’s event-driven model and serverless compatibility make it a good fit for building a modern database.

Download

White arrow pointing right
The author explains why Harper is written in Node.js instead of more traditional languages. He describes how Node’s event-driven model and serverless compatibility make it a good fit for building a modern database.

Download

White arrow pointing right
The author explains why Harper is written in Node.js instead of more traditional languages. He describes how Node’s event-driven model and serverless compatibility make it a good fit for building a modern database.

Download

White arrow pointing right

Explore Recent Resources

Blog
GitHub Logo

Why a Multi-Tier Cache Delivers Better ROI Than a CDN Alone

Learn why a multi-tier caching strategy combining a CDN and mid-tier cache delivers better ROI. Discover how deterministic caching, improved origin offload, lower tail latency, and predictable costs outperform a CDN-only architecture for modern applications.
Cache
Blog
Learn why a multi-tier caching strategy combining a CDN and mid-tier cache delivers better ROI. Discover how deterministic caching, improved origin offload, lower tail latency, and predictable costs outperform a CDN-only architecture for modern applications.
Person with short dark hair and moustache, wearing a colorful plaid shirt, smiling outdoors in a forested mountain landscape.
Aleks Haugom
Senior Manager of GTM & Marketing
Blog

Why a Multi-Tier Cache Delivers Better ROI Than a CDN Alone

Learn why a multi-tier caching strategy combining a CDN and mid-tier cache delivers better ROI. Discover how deterministic caching, improved origin offload, lower tail latency, and predictable costs outperform a CDN-only architecture for modern applications.
Aleks Haugom
Jan 2026
Blog

Why a Multi-Tier Cache Delivers Better ROI Than a CDN Alone

Learn why a multi-tier caching strategy combining a CDN and mid-tier cache delivers better ROI. Discover how deterministic caching, improved origin offload, lower tail latency, and predictable costs outperform a CDN-only architecture for modern applications.
Aleks Haugom
Blog

Why a Multi-Tier Cache Delivers Better ROI Than a CDN Alone

Learn why a multi-tier caching strategy combining a CDN and mid-tier cache delivers better ROI. Discover how deterministic caching, improved origin offload, lower tail latency, and predictable costs outperform a CDN-only architecture for modern applications.
Aleks Haugom
Tutorial
GitHub Logo

Real-Time Pub/Sub Without the "Stack"

Explore a real-time pub/sub architecture where MQTT, WebSockets, Server-Sent Events, and REST work together with persistent data storage in one end-to-end system, enabling real-time interoperability, stateful messaging, and simplified service-to-device and browser communication.
Harper Learn
Tutorial
Explore a real-time pub/sub architecture where MQTT, WebSockets, Server-Sent Events, and REST work together with persistent data storage in one end-to-end system, enabling real-time interoperability, stateful messaging, and simplified service-to-device and browser communication.
A man with short dark hair, glasses, and a goatee smiles slightly, wearing a black shirt in front of a nature background.
Ivan R. Judson, Ph.D.
Distinguished Solution Architect
Tutorial

Real-Time Pub/Sub Without the "Stack"

Explore a real-time pub/sub architecture where MQTT, WebSockets, Server-Sent Events, and REST work together with persistent data storage in one end-to-end system, enabling real-time interoperability, stateful messaging, and simplified service-to-device and browser communication.
Ivan R. Judson, Ph.D.
Jan 2026
Tutorial

Real-Time Pub/Sub Without the "Stack"

Explore a real-time pub/sub architecture where MQTT, WebSockets, Server-Sent Events, and REST work together with persistent data storage in one end-to-end system, enabling real-time interoperability, stateful messaging, and simplified service-to-device and browser communication.
Ivan R. Judson, Ph.D.
Tutorial

Real-Time Pub/Sub Without the "Stack"

Explore a real-time pub/sub architecture where MQTT, WebSockets, Server-Sent Events, and REST work together with persistent data storage in one end-to-end system, enabling real-time interoperability, stateful messaging, and simplified service-to-device and browser communication.
Ivan R. Judson, Ph.D.
News
GitHub Logo

Harper Recognized on Built In’s 2026 Best Places to Work in Colorado Lists

Harper is honored as a Built In 2026 Best Startup to Work For and Best Place to Work in Colorado, recognizing its people-first culture, strong employee experience, and values of accountability, authenticity, empowerment, focus, and transparency that help teams thrive and grow together.
Announcement
News
Harper is honored as a Built In 2026 Best Startup to Work For and Best Place to Work in Colorado, recognizing its people-first culture, strong employee experience, and values of accountability, authenticity, empowerment, focus, and transparency that help teams thrive and grow together.
Colorful geometric illustration of a dog's head resembling folded paper art in shades of teal and pink.
Harper
News

Harper Recognized on Built In’s 2026 Best Places to Work in Colorado Lists

Harper is honored as a Built In 2026 Best Startup to Work For and Best Place to Work in Colorado, recognizing its people-first culture, strong employee experience, and values of accountability, authenticity, empowerment, focus, and transparency that help teams thrive and grow together.
Harper
Jan 2026
News

Harper Recognized on Built In’s 2026 Best Places to Work in Colorado Lists

Harper is honored as a Built In 2026 Best Startup to Work For and Best Place to Work in Colorado, recognizing its people-first culture, strong employee experience, and values of accountability, authenticity, empowerment, focus, and transparency that help teams thrive and grow together.
Harper
News

Harper Recognized on Built In’s 2026 Best Places to Work in Colorado Lists

Harper is honored as a Built In 2026 Best Startup to Work For and Best Place to Work in Colorado, recognizing its people-first culture, strong employee experience, and values of accountability, authenticity, empowerment, focus, and transparency that help teams thrive and grow together.
Harper
Comparison
GitHub Logo

Harper vs. Standard Microservices: Performance Comparison Benchmark

A detailed performance benchmark comparing a traditional microservices architecture with Harper’s unified runtime. Using a real, fully functional e-commerce application, this report examines latency, scalability, and architectural overhead across homepage, category, and product pages, highlighting the real-world performance implications between two different styles of distributed systems.
Comparison
A detailed performance benchmark comparing a traditional microservices architecture with Harper’s unified runtime. Using a real, fully functional e-commerce application, this report examines latency, scalability, and architectural overhead across homepage, category, and product pages, highlighting the real-world performance implications between two different styles of distributed systems.
Person with short dark hair and moustache, wearing a colorful plaid shirt, smiling outdoors in a forested mountain landscape.
Aleks Haugom
Senior Manager of GTM & Marketing
Comparison

Harper vs. Standard Microservices: Performance Comparison Benchmark

A detailed performance benchmark comparing a traditional microservices architecture with Harper’s unified runtime. Using a real, fully functional e-commerce application, this report examines latency, scalability, and architectural overhead across homepage, category, and product pages, highlighting the real-world performance implications between two different styles of distributed systems.
Aleks Haugom
Dec 2025
Comparison

Harper vs. Standard Microservices: Performance Comparison Benchmark

A detailed performance benchmark comparing a traditional microservices architecture with Harper’s unified runtime. Using a real, fully functional e-commerce application, this report examines latency, scalability, and architectural overhead across homepage, category, and product pages, highlighting the real-world performance implications between two different styles of distributed systems.
Aleks Haugom
Comparison

Harper vs. Standard Microservices: Performance Comparison Benchmark

A detailed performance benchmark comparing a traditional microservices architecture with Harper’s unified runtime. Using a real, fully functional e-commerce application, this report examines latency, scalability, and architectural overhead across homepage, category, and product pages, highlighting the real-world performance implications between two different styles of distributed systems.
Aleks Haugom
Tutorial
GitHub Logo

A Simpler Real-Time Messaging Architecture with MQTT, WebSockets, and SSE

Learn how to build a unified real-time backbone using Harper with MQTT, WebSockets, and Server-Sent Events. This guide shows how to broker messages, fan out real-time data, and persist events in one runtime—simplifying real-time system architecture for IoT, dashboards, and event-driven applications.
Harper Learn
Tutorial
Learn how to build a unified real-time backbone using Harper with MQTT, WebSockets, and Server-Sent Events. This guide shows how to broker messages, fan out real-time data, and persist events in one runtime—simplifying real-time system architecture for IoT, dashboards, and event-driven applications.
A man with short dark hair, glasses, and a goatee smiles slightly, wearing a black shirt in front of a nature background.
Ivan R. Judson, Ph.D.
Distinguished Solution Architect
Tutorial

A Simpler Real-Time Messaging Architecture with MQTT, WebSockets, and SSE

Learn how to build a unified real-time backbone using Harper with MQTT, WebSockets, and Server-Sent Events. This guide shows how to broker messages, fan out real-time data, and persist events in one runtime—simplifying real-time system architecture for IoT, dashboards, and event-driven applications.
Ivan R. Judson, Ph.D.
Dec 2025
Tutorial

A Simpler Real-Time Messaging Architecture with MQTT, WebSockets, and SSE

Learn how to build a unified real-time backbone using Harper with MQTT, WebSockets, and Server-Sent Events. This guide shows how to broker messages, fan out real-time data, and persist events in one runtime—simplifying real-time system architecture for IoT, dashboards, and event-driven applications.
Ivan R. Judson, Ph.D.
Tutorial

A Simpler Real-Time Messaging Architecture with MQTT, WebSockets, and SSE

Learn how to build a unified real-time backbone using Harper with MQTT, WebSockets, and Server-Sent Events. This guide shows how to broker messages, fan out real-time data, and persist events in one runtime—simplifying real-time system architecture for IoT, dashboards, and event-driven applications.
Ivan R. Judson, Ph.D.