- factoring out functions included in other functions
- enabling users to pass custom producer/consumer handlers
- moving dry argument to Topic level
- triggering manual commits when enable.auto.commit is false
- no longer flushing after each message, `flush.messages` or `flush.ms` can be used instead
- - fixing types