Titan the Distributed Graph Database with Scala

Updated 2 years ago

Titan, Scala and me...all together

Welcome to my very rough, unpolished notes about Titan the distributed graph database and how to develop graph-centric applications using Titan and Scala.

I've got inspired to write this document after the question on StackOverflow How to start Titan graph server and connect with gremlin?:

I've been playing with Titan graph server for a while now. And my feeling is that, despite an extensive documentation, there is a lack of Getting started from scratch tutorial.

So here it is - The Beginner’s Guide to Titan the distributed graph database with Scala.

Please send questions, comments, and remarks to [email protected]. Without hearing from you, I might be drifting away from what the book may've been offering to you and the entire Titan community far too often. Please help to steer to the right direction.

I'm also transfering the material to titan-graphdb-scala-playground project. Use it whenever you want code not text. Pull requests are very welcome.

The version of Titan used in the document is 0.9.0-M1.

gremlin> Titan.version()

The 0.9.0-M1 version is an experimental release intended for development use. It was announced on Dec, 5th on the aureliusgraphs mailing list:

This release uses TinkerPop 3.0.0.M6, while previous versions of Titan used TinkerPop 2.5.0. Adopting TinkerPop 3 entails high-level API changes for Titan. Source written against Titan 0.5.2 and earlier will generally require modification to compile against Titan 0.9.0-M1. As TinkerPop 3 requires a Java 8 runtime, so too does Titan 0.9.0-M1.

Daniel Kuppitz said on the mailing list:

Milestone releases are explicitly marked as incompatible with all other releases. The GA release will be backwards compatible with 0.5.x.

Quoting one of the main developers of Titan:

It is highly encouraged to study the documentation, JavaDoc and Tinkerpop 3 documentation when upgrading.

Please note that much of the document might not be applicable to the latest production-ready version of Titan 0.5.3.

Links I use very often (and so should you):