Since the DB driver code is not thread-safe, you'll have to create one CassandraClient instance per thread. In that case everything should work fine in theory. The simplest approach would be to make the Cassandra variables static. However, you'll have to be careful to not introduce any race-conditions in your own code, too, and use a TaskMutex (or normal Mutex) where appropriate.

I'm reviewing these posts:
http://forum.rejectedsoftware.com/groups/rejectedsoftware.vibed/thread/25949/
http://forum.rejectedsoftware.com/groups/rejectedsoftware.vibed/thread/8304/

For clarity, every variable I define globally in vibe.d is the same as thread-safe, correct? Basically, in regards to vibe.d, terms can mostly be used interchangeably? (With the exception of initializing with __gshared.)

(This seems to be true for all of D, not just vibe.d, according to
http://dlang.org/migrate-to-shared.html)