Building a Hacker News Style Voting App with Orchestrate & Node.js
Orchestrate, the database-as-a-service company here in Portland, has posted part two of their Hacker News-style voting app built with Node.js.
Orchestrate has worked a bit with The New Stack in exploring the use of a graph database for a data journalism project that we are doing. We looked initially at Neo4j. It has a powerful graph database capability but its Cypher query language was complex to use and lack of support left us looking for an alternative.
We turned to Orchestrate, knowing it does not have the graph database feature sets of Neo4j, but it does have the distinction of a NoSQL-as-service with graph database capabilities. It most recently launched an API to process calls from different NoSQL databases. It also has a replication capability that makes it viable to use across multiple data centers.
The graph database is compelling for us but in the end we had to turn to our custom development process using Ruby on Rails and Postgres. Rails has all the different pieces we need, which we could weave together. This was better for us, mostly due to our own constraints. Rails was just more flexible for us in doing our small project. We think Neo4j and Orchestrate are awesome and love their work. We just had different needs.
But back to Orchestrate. In part one, Orchestrate set up the “app structure, authenticated via GitHub, and stored the user data.” In part two, they build out the functionality for people to create and view projects.
To build the app, Orchestrate used Node.js, Express, and Passport. Express is a web app framework for Node while Passport is used as a middleware authentication middleware for Node.js.
There’s a full how-to available on the Orchestrate blog that takes the user step by step through the process. Perhaps most valuable, from a layman’s perspective, is how Orchestrate connects its graph capability with a Key/Value. It’s a sophisticated use case but shows how graph databases can be applied to complex scenarios such as the management of multiple users.
This blog series is ongoing. The next post will cover integrating the Events API to do the actual voting.
Image courtesy o Orchestrate.io