Taxonomy Icon

Cloud

Develop a graph database app using JanusGraph

Get the code View the demo

Summary

This code pattern contains utility code and sample data for running a Twitter-like application in JanusGraph. Following a few simple steps, you will be able to see the essential parts of a graph application, such as schema, data, and use of APIs to ingest and query graph data. The schema loader and data importer code can be customized for your use cases. Additionally, the data generator provides a convenient way to create test data in different sizes and shapes, so you can easily simulate real data and verify system performance to shorten development time.

Description

You may have heard about graph databases and JanusGraph, but didn’t know what it takes to develop a graph database application, how to move data from a relational database to a graph database, or what to expect of graph database performance. This code pattern is created to answer some of the questions and provide tools to help address others.

First, follow a few steps to understand how a Twitter application is developed in JanusGraph. Then you can check the schema loader and data importer code to learn the practical use of Java™ management APIs, and eventually expand or modify the code for custom schema and data operations. For example, one could export custom graph data from a SQL database into CSV files and use the data importer to load data from CSV files into JanusGraph.

How about the graph database performance? You can take the graph data generator to create test data, simulating the real data in various sizes, and quickly verify system performance behaviors.

After learning how Gremlin queries and REST APIs work together to perform OLTP tasks, you could develop interesting front-end applications to showcase specific graph data scenarios.

Flow

flow

  1. User generates Twitter sample schema and data using JanusGraph utilities.
  2. User loads schema and imports data in back-end servers using JanusGraph utilities.
  3. User makes search and update requests in a REST/custom client.
  4. Client app sends REST requests to JanusGraph server.
  5. The JanusGraph server interacts with back end to process and return graph data.

Instructions

Ready to put this code pattern to use? Complete details on how to get started running and using this application are in the README.