I have a python application communicating with Titan graph database backed by Cassandra.
Python App ---------> Rexster Server + Titan Graph DB + Cassandra.
The "Rexster Server + Titan Graph DB + Cassandra" is inside a single JVM.
My python application runs on multiple Virtual machines.i.e Each virtual machine has an identical copy of my application. The idea is to make the application scalable. Now clearly for the initial implementation I am using a single instance of "Rexster Server + Titan Graph DB + Cassandra". This means that the backend database is a single node. My applications running on different virtual machines talk to the same backend.
My questions are as follows.
1) I want to make the backend database scalable as well. How can I do this?
2) Do I need to use the same "Rexster + Titan Graph DB" and configure multiple cassandra nodes?
3) Is Titan Graph DB the best option for this use case? Or can I substitute Titan Graph DB with Neo4j and Rexster with Neo4jserver. why/whynot?