Neo4j Frees Travelers to Wanderu Across America
Wanderu’s key business challenge was how to collect, standardize, then connect together all this data – from bus and train companies and multiple public sources including Google Maps.
Chief Technology Officer Eddy Wong, a 15-year software industry veteran and former Chief Architect at Open Sesame, a personalization technology start-up acquired by Adobe, quickly realized this task was beyond conventional relational databases.
“When we started we didn’t know anything about Neo4j, but by looking at the problem it jumped out at us that we wanted a graph model. We wanted the flexibility of a schema-less database and no way would self-joins in a relational model perform – we did not like the relational model for our main use case.”
Wanderu already stored its data on cities, stations, trips and carriers in a MongoDB NoSQL database, but it needed Neo4j to perform the “path finding” – the complex search and discovery required to recommend to customers their best travel options. So the company linked MongoDB and Neo4j together, using a replication mechanism called Mongo Connector.“
Our solution was to have two stores and let Neo4j do the path finding,” Eddy said. “They say that in the NoSQL approach you should try to avoid joins, but even though we did a join between Neo4j and MongoDB, it was much better than a relational database self-join, so we were glad to have picked Neo4j together with MongoDB.”
Explaining why Wanderu selected Neo4j over other graph databases, he said: “We chose Neo4j because its graph traversal framework is the most advanced and flexible one that we saw. We were able to implement a variation of the shortest-path algorithm with Neo4j, while the other graph databases don’t seem to make that easy.”
“The other graph databases that we looked at were proprietary ones and we wanted an open-source one. With open-source, you can inspect the code if you want to and you have the choice to extend the functionality. We also liked the vibrant open-source community behind Neo4j.”