Abc-Arbitrage / Zebus

A lightweight Peer to Peer Service Bus

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Cassandra Setup

veenroid opened this issue · comments

Love your implementation of ZeroMQ. I've been studying your code for a bit and can't find any details on utilizing Cassandra in place of your in-memory Directory. Do you have anything you can point me to? Is this lack of Cassandra detail what you meant in this quote from README? If not, what do you mean?

Although we did not release all the necessary bricks yet so you will have to wait a few minor versions to have a fully resilient prodable product.

Thanks for sharing your fantastic work.

Thanks! 😄

I'm not really sure why we didn't publish a ready-to-run Cassandra directory. Probably because you need to set-up a Cassandra cluster to run it first and most people wouldn't want to do this just to test the bus.

Internally, we're using a very thin wrapper around Abc.Zebus.Directory.Cassandra.

While the in-memory version declares c.ForSingletonOf<IPeerRepository>().Use<MemoryPeerRepository>(); in StructureMap, the Cassandra version needs to use CqlPeerRepository instead of MemoryPeerRepository.

You'll also need to create the schema, which is provided here, and supply the necessary connection configuration by providing an implementation of ICassandraConfiguration.

We have a work item (#78) which adds a runnable persistence in either RocksDB or Cassandra mode. We probably should provide a similar feature for the directory (to choose between in-memory and Cassandra).

BTW I think we should remove that statement you found in the readme as it seems outdated, I think we published pretty much everything you need.

/cc @ocoanet

@veenroid I've added a couple of lines to the Directory runner so that it is trivial to use it with Cassandra.

Check out this commit : 8633ecb