The client interface has to be something like: ``` producer.send(message) ``` Internally the producer _must_ : - [ ] Aggregate the messages based on batch-size - [ ] split the messages based on frame-size - [ ] send the buffer after a configurable timeout ( default 100 ms)