# Package org.apache.storm.kafka.spout

- Interface Summary
  Interface | Description
  --- | ---
  Func<V,​R> | A simple interface to allow compatibility with non java 8 code bases.
  KafkaSpoutRetryService | Represents the logic that manages the retrial of failed tuples.
  KafkaTupleListener | The KafkaTupleListener handles state changes of a kafka tuple inside a KafkaSpout.
  RecordTranslator<K,​V> | Translate a `ConsumerRecord` to a tuple.

- Class Summary
  Class | Description
  --- | ---
  ByTopicRecordTranslator<K,​V> | Based off of a given Kafka topic a ConsumerRecord came from it will be translated to a Storm tuple and emitted to a given stream.
  DefaultRecordTranslator<K,​V> |
  EmptyKafkaTupleListener |
  KafkaSpout<K,​V> |
  KafkaSpoutConfig<K,​V> | KafkaSpoutConfig defines the required configuration to connect a consumer to a consumer group, as well as the subscribing topics.
  KafkaSpoutConfig.Builder<K,​V> |
  KafkaSpoutMessageId |
  KafkaSpoutRetryExponentialBackoff | Implementation of `KafkaSpoutRetryService` using the exponential backoff formula.
  KafkaSpoutRetryExponentialBackoff.TimeInterval |
  KafkaSpoutTestBolt |
  KafkaSpoutTopologyMainNamedTopics | This example sets up 3 topologies to put data in Kafka via the KafkaBolt, and shows how to set up a topology that reads from some Kafka topics using the KafkaSpout.
  KafkaSpoutTopologyMainWildcardTopics | This example is similar to `KafkaSpoutTopologyMainNamedTopics`, but demonstrates subscribing to Kafka topics with a regex.
  KafkaTuple | A list of Values in a tuple that can be routed to a given stream: `RecordTranslator.apply(org.apache.kafka.clients.consumer.ConsumerRecord<K, V>)`.
  SimpleRecordTranslator<K,​V> |
  TopicPartitionComparator | Singleton comparator of TopicPartitions.

- Enum Summary
  Enum | Description
  --- | ---
  FirstPollOffsetStrategy | Defines how the spout seeks the offset to be used in the first poll to Kafka upon topology deployment.
  KafkaSpoutConfig.ProcessingGuarantee | This enum controls when the tuple with the `ConsumerRecord` for an offset is marked as processed, i.e.