Hi, We have made lot of good changes in 0.7.0 and improved the api's. However, I think it is not easy/intuitive for a new user. One of the problems with 0.7.0 code is that we tried to maintain complete backward compatibility with respect to both logical api's and physical layout on zookeeper.
Trying to maintain the logical api backward compatibility has definitely caused some pain and did not allow us to do the right thing in 0.7.0 and it has made our code base huge. The reasoning here is - when we built Helix ((almost 3 years back), we did not anticipate Helix being used in other systems. So our main focus was minimal code and to make sure it works for the use case we had. We did not gather much feedback from users. However, we are seeing the usage grow and while everyone agrees that the high level concepts are good, it is apparent that api's are making people shy away from Helix. I would even say some of the terminologies are confusing until you spend quite some time with Helix. I want to see what others think about this. We have two options going forward Option1: Continue to maintain backward compatibility and improving the api's Option2: Break the api compatibility and call it Helix V2. We redesign our api's and make it more intuitive and easier/flexible to use. I think the core functionality and design is great and don't see much change needed in the architecture (Do let us know if you think we need any change). What is lacking is documentation and a simple set of api's that are intuitive. While Option 1 is great for existing users, I prefer Option2. We will redesign the 0.7.0 api's without maintaining backward compatibility. Lot of work has already been done in 0.7.0, so we are not that far. This also gives chance to the community to contribute and provide suggestions/feedback/ideas. For existing users, we will continue to maintain 0.6.2 and continue to make critical bug fixes. But no new features will be added. Thoughts ? thanks, Kishore G
