What is HarperDB’s Open Source Strategy?

When first learning about HarperDB, a lot of folks ask about our Open Source Strategy.  Given one of our core-values is transparency, I thought it important to publish our strategy publicly.   

I am a former Red Hatter and a passionate believer that Open Source is good for the world. When forming HarperDB, we did some really deep thinking about Open Source.  We consulted former colleagues at Red Hat, had intense conversations with developers, and looked pretty extensively at the market.   We really believe in what we are building at HarperDB and want to ensure its longevity. HarperDB is ultimately a building block in any solution.  When picking a Database for IoT projects you want a product you can trust and that will be around for years to come.  HarperDB fulfills this as it’s a foundational component to a solution.  It was really important to us that we made sure we implemented a sustainable business model that allows us to grow and survive.  

Feedback from the developer community is of great value to us and we want to continue to grow and build our IoT Database based on that feedback.  Open Source is a great way to engage the community and collaborate on technology.  That is important to us because while we are really passionate about what we are doing, we know there are a lot of really smart people in the world who can help make HarperDB better.   

We feel really fortunate to be members of different tech communities like the Node.js community, the IoT community, the startup tech community, and more.  We have gained so much from them in knowledge, support, and excitement, that we want to make sure that we are giving back.  We know that we stand on the shoulders of giants, and we don’t want to be ungrateful recipients of their efforts.  

One of the things we noticed when researching a potential open source strategy was the lack of success amongst companies outside of Red Hat with a “pure play” open source strategy.  This is a business model where 100% of your technology is released via Open Source while monetizing the support and services.  A lot of companies that launched a few years before us as “pure play” open source databases failed as they had a lot of trouble monetizing their offering at the enterprise level and becoming sustainable businesses.   

In the world we live in, it takes resources like developers, support staff, product people, hardware, cloud services and more to build an awesome product.  Now obviously those folks can volunteer their time and those resources can be donated but it takes focus, another one of our core-values.  We really wanted to dedicate 100% of our time building our product and company and to do that requires money, pure and simple.  

There are two ways to get money in the software world, sell your product or service, or raise it via the investment community.  When building something as complex and foundational as an HTAP database, it turns out that both are needed.    

In thinking about how we wanted to tackle our open source strategy we had a few different options.  One, go “pure play” open source with a fully open source database, honestly from a pure passion perspective, this is what we wanted to do.  That said, from a realistic perspective we saw this as inherently risky.  Could we generate enough revenue to make us a sustainable and viable business in this model through selling support services?  Often on sales calls today we hear “why would we pay for your product when we can just use product xyz for free?”  When I hear that, I am thinking you should pay both of us because someone spent a lot of time and energy building that open source project, are very passionate about it, and it adds tremendous value to your business.  Perhaps I am too much of a realist and not idealistic enough, but this risk just seemed too much to overcome.  

Secondly, we could make the core of HarperDB Open Source, while making some add-on enterprise components proprietary which is a model a lot of folks have adopted.  That said, Kyle, Zach, and I are huge believers in simplicity.  It’s in our DNA and in everything that we do.  We could not figure out a way to do this product-wise that didn’t overcomplicate the product and cause unnecessary fragmentation.   What makes HarperDB unique is its data storage mechanism, the rest of the product is just feature parity and features designed to make developers lives easier.  It felt weird to open source that core component while charging for things that we felt were just a given and that we owed to the developer community.   

Our ultimate goal was to give the developer community a product they could use for free, that had all the features they needed, and that would allow for engagement with the community.  As a result, what we decided on was to make the core of HarperDB a freemium to premium model product.  The core of HarperDB is the community edition product.  This product will be free forever and we will never charge for it.  Layered on top of that are features like clustering, replication, drivers for JDBC and ODBC, and a few other features that are mainly needed by the enterprise community.  This allows us to charge for those features that big companies need, while building a free product that developers can use.  It also keeps it really simple which was hugely important to us.   

Finally, anything that we build that is not part of the core, we are open sourcing.  We have released the HarperDB Studio, a package for node-red, and shortly we will release a CLI for HarperDB as an open source project as well.  Our strategy is to modularize everything that we build going forward, and all of the products that we release will be open source.  We have also contributed to open source projects like AlaSQL and plan to devote more resources to our open source contributions as resources become available.   

I fully realize that it’s less exciting to work on Open Source projects sitting on top of a freemium/premium core.  Our hope though is that the projects we are releasing can give people a feedback loop to drive change within our core product, can help improve the projects we use like AlaSQL, and can engage developers in a deeper level with our company and roadmap as we know that you are all smarter than we are.  We by no means think we have this figured out for good, and we are open to discussion and feedback on our plans.  We know that we don’t know everything, and I fully expect over the next several years this strategy will evolve as our company and the usage of HarperDB grows.  I felt it was important to put an honest and thorough account for our decision-making process into the open so that others can learn from it, tell us we are idiots, or help us improve.