Couple of mostly-uninformed comments inline,

On Oct 13, 2014, at 2:00 AM, Gerrit Jansen van Vuuren <gerrit...@gmail.com> 
wrote:

> Hi Daniel,
> 
> At the moment redis is a spof in the architecture, but you can setup
> replication and I'm seriously looking into using redis cluster to eliminate
> this.
>   Some docs that point to this are:
>   http://redis.io/topics/cluster-tutorial
>   http://redis.io/topics/sentinel

There's some evidence that redis clusters are *not* good for managing state
in the way that you are using it:

http://aphyr.com/posts/283-call-me-maybe-redis

> If you can’t tolerate data loss, Redis Sentinel (and by extension Redis 
> Cluster) is not safe for use as:
> 
>       • A lock service
>       • A queue
>       • A database


>> 
>>> On 13/10/2014, at 10:22 am, Gerrit Jansen van Vuuren <
>> gerrit...@gmail.com> wrote:
>>> 
>>> Hi,
>>> 
>>> Just thought I'll put this out for the kafka community to see (if anyone
>>> finds it useful great!!).
>>> 
>>> Kafka-fast is 100% pure clojure implementation for kafka, but not just
>>> meant for clojure because it has a Java API wrapper that can be used from
>>> Java, Groovy, JRuby or Scala.

One thing that frustrates me with the Kafka library is that despite it claiming
that the Scala code is interoperable with Java, it really isn't.  You end up
having to work around the Scala compiler 'magic' in increasingly bizarre ways,
e.g. default arguments:

kafka = new KafkaServer(createConfig(), KafkaServer.init$default$2());

which is both magical and fragile.  I don't know whether Clojure is the same 
way,
just want to point out that if you don't take particular care of us old fart 
Java
nuts, you'll lose us quickly :)

Another example, from your docs:

Object connector = Producer.createConnector(new BrokerConf("192.168.4.40", 
9092));
Producer.sendMsg(connector, "my-topic", "Hi".getBytes("UTF-8"));

This is downright bizarre to me, I would instead expect:

Producer connector = Producer.createConnector(...)
connector.sendMsg("my-topic", bytes)

which is IMO shorter, cleaner, and easier for testing (especially mocking).


Hope some of my ravings are helpful,
Steven

Reply via email to