I just wanted to suggest that you change the name of the send method in Producer. I'm just starting out with kafka so I don't know if naming it producer.push would be a good idea or perhaps producer <<. Naming a method "send" is problematic in Ruby because send is how you send arbitrary method calls to an object. Keeping a functioning send method around is pretty important, especially if someone using the library wanted to do some metaprogramming.
Rename producer/multi-producer methods to push
Send is problematic in ruby because it is defined on all objects as a
way to dynamically send method calls (messages). You do not want to have
any methods in your interface that define send.
This would resolve #18