Package com.bakdata.kafka
Class AvroDeadLetterConverter
- java.lang.Object
-
- com.bakdata.kafka.AvroDeadLetterConverter
-
- All Implemented Interfaces:
com.bakdata.kafka.DeadLetterConverter<DeadLetter>
public final class AvroDeadLetterConverter extends java.lang.Object implements com.bakdata.kafka.DeadLetterConverter<DeadLetter>
Convert aDeadLetterDescriptionto an AvroDeadLetter
-
-
Constructor Summary
Constructors Constructor Description AvroDeadLetterConverter()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description static <K,V>
org.apache.kafka.streams.processor.api.FixedKeyProcessorSupplier<K,com.bakdata.kafka.ProcessingError<V>,DeadLetter>asProcessor(java.lang.String description)Creates a processor that uses the AvroDeadLetterConverterstatic <V> org.apache.kafka.streams.kstream.ValueTransformerSupplier<com.bakdata.kafka.ProcessingError<V>,DeadLetter>asTransformer(java.lang.String description)Deprecated.DeadLetterconvert(com.bakdata.kafka.DeadLetterDescription deadLetterDescription)
-
-
-
Method Detail
-
convert
public DeadLetter convert(com.bakdata.kafka.DeadLetterDescription deadLetterDescription)
- Specified by:
convertin interfacecom.bakdata.kafka.DeadLetterConverter<DeadLetter>
-
asTransformer
@Deprecated(since="1.4.0") public static <V> org.apache.kafka.streams.kstream.ValueTransformerSupplier<com.bakdata.kafka.ProcessingError<V>,DeadLetter> asTransformer(java.lang.String description)
Deprecated.Creates a transformer that uses the AvroDeadLetterConverter// Example, this works for all error capturing topologies final KeyValueMapper<K, V, KeyValue<KR, VR>> mapper = ...; final KStream<K, V> input = ...; final KStream<KR, ProcessedKeyValue<K, V, VR>> processed = input.map(captureErrors(mapper)); final KStream<KR, VR> output = processed.flatMapValues(ProcessedKeyValue::getValues); final KStream<K, ProcessingError<V>> errors = processed.flatMap(ProcessedKeyValue::getErrors); final KStream<K, DeadLetter> deadLetters = errors.transformValues( AvroDeadLetterConverter.asTransformer("Description")); deadLetters.to(ERROR_TOPIC);- Type Parameters:
V- type of the input value- Parameters:
description- shared description for all errors- Returns:
- a transformer supplier
-
asProcessor
public static <K,V> org.apache.kafka.streams.processor.api.FixedKeyProcessorSupplier<K,com.bakdata.kafka.ProcessingError<V>,DeadLetter> asProcessor(java.lang.String description)
Creates a processor that uses the AvroDeadLetterConverter// Example, this works for all error capturing topologies final KeyValueMapper<K, V, KeyValue<KR, VR>> mapper = ...; final KStream<K, V> input = ...; final KStream<KR, ProcessedKeyValue<K, V, VR>> processed = input.map(captureErrors(mapper)); final KStream<KR, VR> output = processed.flatMapValues(ProcessedKeyValue::getValues); final KStream<K, ProcessingError<V>> errors = processed.flatMap(ProcessedKeyValue::getErrors); final KStream<K, DeadLetter> deadLetters = errors.processValues( AvroDeadLetterConverter.asProcessor("Description")); deadLetters.to(ERROR_TOPIC);- Type Parameters:
K- type of the input keyV- type of the input value- Parameters:
description- shared description for all errors- Returns:
- a processor supplier
-
-