We currently have almost 10 open tickets for features / improvements to
gossip, many are slated for the next release and we are on our way to be
ahead of schedule with that.

I wanted to pick everyone's brain as to where we should aim for.

I think some larger general directions are below:

1) SWIM. https://www.cs.cornell.edu/~asdas/research/dsn02-swim.pdf

This is a fairly large undertaking in terms of codifying the protocol and
keeping the project elegant with two Failure Detectors

2) HTTP as transport

Having two transports in the codebase is simple. I think this will go well
 HTTP clients do all the session/persistence. Transplanting Gossip to live
in a webapp wont be too bad but it might involve re-orging the project a
bit into a multi-module maven project. I see a lot of upside here

3) Signed messages (https://issues.apache.org/jira/browse/GOSSIP-47)

While I am not a super expert in keystores and such this strikes me as
interesting idea. Mostly because it allows peers to share info but also be
able to sign/verify/encrypt info as it moves between peers. I have never
seen something quite like this so I think it is novel.

4) Recipes

Building things like Ephemeral Nodes or Leader Election seem to be a good
fit. Gossip should not be a database so this is a hard line to draw. This
will take some research and expertise to implement correctly.

5) Second implementation

Originally I planned to build out a second implementation in c, node, or
python. This seems less appealing to me at the moment, but if Gossip Java
gets too large/complex we will likely miss out window to do this.

6) something massive to spin up N instances in amazon and do testing

This is something that needs to happen, maybe in two parts.

7) Other ideas? Let them fly.

Thanks,
Edward

Reply via email to