I would like to second Tim's suggestion.

For example, this would possibly allow a Scala client that supports 2.9.x,
while keeping the core Kafka code on 2.8.x.

-Evan

On Tue, Nov 29, 2011 at 1:26 PM, Tim Lossen <t...@lossen.de> wrote:

> hmmmm .... i would like to repeat the suggestion i made earlier:
> i would keep all clients -- except the scala reference implementation --
> out of the kafka distribution.
>
> this is the model that redis follows, for example, and it works really
> well.
> no need to officially "accept" clients either.
>
> tim
>
> On 2011-11-29, at 8:51 AM, Jay Kreps wrote:
>
>  Dave wrote an excellent guide to implementing a kafka client here:
>> http://readthedocs.org/docs/**brod/en/latest/spec.html<http://readthedocs.org/docs/brod/en/latest/spec.html><
>> d...@datadoghq.com>
>>
>> One point that was raised in the discussion was that we don't currently
>> have a lot of standardization or documentation for clients. For example
>> there is no documentation on the site, inconsistent or no examples in the
>> source, and inconsistent or no integration tests for the clients. Overall
>> our approach to clients has been to be somewhat liberal in what we except
>> on the assumption that something is better than nothing. Unfortunately the
>> clients are somewhat harmed by lack of a clear model to follow.
>>
>> I was thinking it might be good to have a standard for these and try to
>> move the clients towards these standards and only take new clients that
>> meet the standards. Here is what I was thinking should be a minimum for us
>> to take a client:
>>
>>  - A patch for documentation
>>  
>> http://svn.apache.org/repos/**asf/incubator/kafka/site<http://svn.apache.org/repos/asf/incubator/kafka/site>that
>>  adds
>>  quickstart style instructions for usage. We should make the existing
>>  quickstart link a list with an entry for each language.
>>  - An integration test suite which can be run against a running broker/zk
>>  on the default port and localhost. Not sure of the best format for these,
>>  but maybe just a shell script that can be invoked by doing
>>  clients/<lang>/test.sh (the tests themselves can be in the client
>> language,
>>  this just gives a uniform way to run them as part of a regression suite).
>>  This script should exit with a non-zero code if one or more tests fail
>> and
>>  print diagnostic information.
>>  - An entry in the examples examples/src/main/<lang> directory which
>>  gives complete code for a working example.
>>  - An owner for this client who would be willing to maintain this code
>>  going forward. This probably isn't a hugely time consuming job, but it is
>>  good to have a contact person who can be point for questions or fixes.
>>  - A self-assessment of the "production readiness" of the client. I think
>>  it is fine to take proof-of-concept code since it gives people something
>> to
>>  work from, but it is good to be able to give people some assessment of
>> how
>>  production-ready it is so people don't run into problems and have a
>>  negative reaction to the project as a whole.
>>
>> Any other criteria we should add?
>> -Jay
>>
>
> --
> http://tim.lossen.de
>
>


-- 
--
*Evan Chan*
Senior Software Engineer |
e...@ooyala.com | (650) 996-4600
www.ooyala.com | blog <http://www.ooyala.com/blog> |
@ooyala<http://www.twitter.com/ooyala>

Reply via email to