Thank you Flavio and Raul.

> 1- You'd like to be able to plug in new algorithms or at least make a clear 
> separation of the replication protocol and the logic of the service.
> 2- You'd like to have an implementation of Zab that you could use for other 
> things, like a kv store.

Thank you for pointing me to ZOOKEEPER-30. Yes, I was focused more on
2, but it's definitely a good idea to have a generic interface for
atomic broadcast so that you can plug in different algorithms. It
seems like the project can be broken into 3 pieces:

1. Define an interface for atomic broadcast. I'm not sure how things
like session tracker and dynamic reconfig fits into this.
2. Add a ZAB implementation of the interface.
3. Create a simple reference implementation of a service (maybe a
simple key-value store or a benchmark tool).

I agree with both of you that it's better to do this as a separate
project. Also, It might be better to do this as an incubator project
from the beginning. I think it makes it easier for people from
different organizations to collaborate. I'm willing to champion the
project.

I'll open a JIRA once the intern is committed to the project.

Thanks!
--Michi

Reply via email to