Vertex-centric indexes (VCI) are stored in the storage backend (Cassandra, HBase). An external indexing backend is not required.
The key aspect of the VCI is the ordering of the edges based on an edge property. When you have a query that comes in that filters on that edge property, it is faster to select it out the matching edge when it is sorted. If they are not sorted, it would need to iterate through all the incident edges to be certain whether the matching condition is met.
> JanusGraph automatically builds vertex-centric indexes per edge label and property key.
I think you need to take that one by one.
* For incident edges on a vertex, they are sorted by edge label by default. In graph of the gods, "brother" edge would come before "lives" edge. Now let's say for example, a vertex had 1,000 "brother" edges and 2,000 "lives" edges. All the "brother" edges would all be found together, but if you wanted to more specifically find brothers by age, it would be useful to have a VCI on the "age" edge property.
* For properties on a vertex, they are sorted by property name. This comes more into play if you have a list or set cardinality.