thanks for the great interest and suggestions!
I revisited vertigo 0.7 source and tried to figure out a way how to switch easily from vertx2 to vertx3. I think I understand why Jordan developed copycat & alleycat - before doing
distributed event processing, you need a way to distribute data
efficiently, deal with failures and handle states of components
throughout the cluster. Vertigo has a big code base, because it mixes distributed data management with distributed event processing. Because of java 7 it has lots of json objects to "glue" vertigos building blocks over the event bus together. My major worry is that I cannot decide, which building blocks of vertigo I have to replace with copycat api calls - its looks very interrelated! My second worry is, that a huge amount of json objects are constructed so that vertigo building blocks are glued via event bus together.
I investigated a way to build vertigo on top of a distributed data management (copycat), prevent serializing to JSON (as Suminda pointed out) and avoid building messages manually (less glue messages). I came up with a totally new architecture. Major advantage is to use serialized java 8 anonymous functions, which are serializable to byte[] and minimize manual message building to nearly 0. You like to iterate over the data in the cluster, just define an anonymous function and send it to the cluster nodes - no translation in json messages necessary. This make development of distributed algorithms a lot easier!
You can take a look at the prototype - pull it, build it & run it:
https://github.com/orolle/reactive-vertigo/ (main() in rvertigo.main.Starter)
But this means to start vertigos event processing at square 1 again. As first step, I want to port java 8 streaming api to vertigo. First, I think it is a really useful feature when developing vertx apps (its just a map + reduce to calculate trending topics and stuff). Second, it will allow to use java 8 stream functions on vertigo ports later. Who likes to support me in porting the javas steaming api to vertigo?