Module: WaterDrop::Producer::Tombstone
- Included in:
- WaterDrop::Producer
- Defined in:
- lib/waterdrop/producer/tombstone.rb
Overview
Component for tombstone producer operations
Tombstone records are Kafka messages with a nil payload, used to signal deletion of a key in compacted topics. This module provides a dedicated API so users don’t have to manually construct ‘produce_*(topic:, key:, payload: nil, …)` calls.
Instance Method Summary collapse
-
#tombstone_async(message) ⇒ Rdkafka::Producer::DeliveryHandle
Produces a tombstone message to Kafka and does not wait for results.
-
#tombstone_many_async(messages) ⇒ Array<Rdkafka::Producer::DeliveryHandle>
Produces many tombstone messages to Kafka and does not wait for them to be delivered.
-
#tombstone_many_sync(messages) ⇒ Array<Rdkafka::Producer::DeliveryHandle>
Produces many tombstone messages to Kafka and waits for them to be delivered.
-
#tombstone_sync(message) ⇒ Rdkafka::Producer::DeliveryReport
Produces a tombstone message to Kafka and waits for it to be delivered.
Instance Method Details
#tombstone_async(message) ⇒ Rdkafka::Producer::DeliveryHandle
Produces a tombstone message to Kafka and does not wait for results
31 32 33 |
# File 'lib/waterdrop/producer/tombstone.rb', line 31 def tombstone_async() produce_async(prepare_tombstone()) end |
#tombstone_many_async(messages) ⇒ Array<Rdkafka::Producer::DeliveryHandle>
Produces many tombstone messages to Kafka and does not wait for them to be delivered
55 56 57 |
# File 'lib/waterdrop/producer/tombstone.rb', line 55 def tombstone_many_async() produce_many_async(.map { || prepare_tombstone() }) end |
#tombstone_many_sync(messages) ⇒ Array<Rdkafka::Producer::DeliveryHandle>
Produces many tombstone messages to Kafka and waits for them to be delivered
43 44 45 |
# File 'lib/waterdrop/producer/tombstone.rb', line 43 def tombstone_many_sync() produce_many_sync(.map { || prepare_tombstone() }) end |
#tombstone_sync(message) ⇒ Rdkafka::Producer::DeliveryReport
Produces a tombstone message to Kafka and waits for it to be delivered
19 20 21 |
# File 'lib/waterdrop/producer/tombstone.rb', line 19 def tombstone_sync() produce_sync(prepare_tombstone()) end |