Getting Started with WaterDrop
If you want to both produce and consume messages, please use Karafka. It integrates WaterDrop automatically.
To get started with WaterDrop:
- Add it to your Gemfile:
bundle add waterdrop
- Create and configure a producer:
producer = WaterDrop::Producer.new do |config|
config.deliver = true
config.kafka = {
'bootstrap.servers': 'localhost:9092',
'request.required.acks': 1
}
end
- Use it as follows:
# And use it
producer.produce_sync(topic: 'my-topic', payload: 'my message')
# or for async
producer.produce_async(topic: 'my-topic', payload: 'my message')
# or in batches
producer.produce_many_sync(
[
{ topic: 'my-topic', payload: 'my message'},
{ topic: 'my-topic', payload: 'my message'}
]
)
# both sync and async
producer.produce_many_async(
[
{ topic: 'my-topic', payload: 'my message'},
{ topic: 'my-topic', payload: 'my message'}
]
)
For additional WaterDrop usage examples, please refer to the Usage section of this documentation.