Since Virgil was originally developed as an embedded REST layer for
the Cassandra Server, it ran as a daemon inside the server and
performed operations directly against the CassandraServer classes.
Running in a single JVM had some performance gains over a separate
server that communicated over Thrift (either directly or via Hector)
since operations didn't have to take a second hop across the network
(with the associated marshalling/unmarshalling)
We had a request come in to add the ability to run Virgil against a remote Cassandra:
seemed reasonable since there are a lot of existing cassandra clusters
and users may just want to add a REST layer to support webapp/gui access
or SOLR integration
To support those cases, we added run-modes to the configuration:
Let us know what you think.