You asked for feedback, I gave it. You know nothing about what I think
of maven, guice, spring, or hibernate, so why bring them up?

There's a middle ground between Curator and zkClient, and I personally
would love to see that middle ground reached. Anyway, I've never made
a decision to use a library or not based on the conditions you listed
below (unless there were actual usability issues related to them,
which for me there weren't in zkClient), so I'm pretty sure I am not
your target audience. But I know there are many here that would be
turned off by those reasons and it is great to give them a different
choice.

C

On Tue, Oct 11, 2011 at 7:34 PM, Jordan Zimmerman
<[email protected]> wrote:
> It amazes me that people comment on this or that library that it's too 
> complicated but then don't blanch to use things such as Maven, Guice, Spring, 
> Hibernate, etc.
>
> Issues with zkClient:
> * Very poor documentation (is there any?)
> * Far too coupled for my taste. zkClient covers far too much scope.
> * Error handling is very weak (everything becomes RuntimeException)
> * Hard coded retry mechanism
> * Some bad anti-patterns
> ** ZkClient constructor leaks "this" ref
> ** lots of synchronized/lock blocks
>
> Curator is much more modular. You could use just the Client package (which 
> isn't complicated at all). The recipes are completely de-coupled making them 
> more reusable/extendable. I believe a new ZK user would have a much easier 
> time with Curator than zkClient. My experience with users at Netflix confirms 
> this. Our users can concentrate on the recipes (which is what they're really 
> interested in) and not worry about the details of managing ZK interaction.
>
> -JZ
> ________________________________________
> From: Camille Fournier [[email protected]]
> Sent: Tuesday, October 11, 2011 4:00 PM
> To: [email protected]
> Subject: Re: ANN: Curator - Netflix's ZooKeeper library
>
> My first reaction to the code, also at a high-level browse, was that it is
> way over-complicated. Might just be the builder style, which I also don't
> care for. I had to go several levels deep through interfaces and impls to
> see the code that does anything of meaning, which makes for a high learning
> curve and a debugging headache.
>
> So, it's not clear to me why anyone would use this over zkClient, except
> that you have provided a pluggable retry style, which is nice. Any other
> major benefits I'm missing from a scan?
>
> C
> On Oct 11, 2011 4:53 PM, "Jordan Zimmerman" <[email protected]> wrote:
>
>> The major raison d'ĂȘtre for Curator is to make adding "recipes" much
>> easier. Using the Curator Framework APIs you can easily build new
>> usages/recipes and not worry about connection management.
>>
>> -JZ
>>
>> On 10/11/11 1:46 PM, "Ted Dunning" <[email protected]> wrote:
>>
>> >What I prefer to see in this context is a method that takes a closure that
>> >does the desired mutation and which encapsulates the necessary read,
>> >modify,
>> >write, retry logic.
>>
>>
>

Reply via email to