|  | 
| 1 | 1 | [[retry-config]] | 
| 2 | 2 | = Configuration | 
| 3 | 3 | 
 | 
| 4 |  | -Starting with version 2.9, for default configuration, the `@EnableKafkaRetryTopic` annotation should be used in a `@Configuration` annotated class. | 
| 5 |  | -This enables the feature to bootstrap properly and gives access to injecting some of the feature's components to be looked up at runtime. | 
|  | 4 | +For the default setup, enable non-blocking retries by adding the `@RetryableTopic` annotation to a `@KafkaListener` method. | 
|  | 5 | +This is the recommended and simplest approach, as it automatically configures the required retry infrastructure and creates the retry and DLT topics with default settings. | 
|  | 6 | + | 
|  | 7 | +To import the non-blocking retry infrastructure and expose its components as beans, annotate a `@Configuration` class with `@EnableKafkaRetryTopic`. | 
|  | 8 | +This enables injection and runtime lookup of the feature’s components and serves as a foundation for advanced and global configuration. | 
| 6 | 9 | 
 | 
| 7 | 10 | NOTE: It is not necessary to also add `@EnableKafka`, if you add this annotation, because `@EnableKafkaRetryTopic` is meta-annotated with `@EnableKafka`. | 
| 8 | 11 | 
 | 
| 9 |  | -Also, starting with that version, for more advanced configuration of the feature's components and global features, the `RetryTopicConfigurationSupport` class should be extended in a `@Configuration` class, and the appropriate methods overridden. | 
|  | 12 | +For advanced and global customization, extend `RetryTopicConfigurationSupport` in a single `@Configuration` class and override the relevant methods. | 
| 10 | 13 | For more details refer to xref:retrytopic/retry-config.adoc#retry-topic-global-settings[Configuring Global Settings and Features]. | 
| 11 | 14 | 
 | 
| 12 | 15 | By default, the containers for the retry topics will have the same concurrency as the main container. | 
| 13 | 16 | Starting with version 3.0, you can set a different `concurrency` for the retry containers (either on the annotation, or in `RetryTopicConfigurationBuilder`). | 
| 14 | 17 | 
 | 
| 15 |  | -IMPORTANT: Only one of the above techniques can be used, and only one `@Configuration` class can extend `RetryTopicConfigurationSupport`. | 
|  | 18 | +[IMPORTANT] | 
|  | 19 | +==== | 
|  | 20 | +Use only one of the two global configuration approaches above (`@EnableKafkaRetryTopic` or extending `RetryTopicConfigurationSupport`). | 
|  | 21 | +In addition, only one `@Configuration` class should extend `RetryTopicConfigurationSupport`. | 
|  | 22 | +==== | 
| 16 | 23 | 
 | 
| 17 | 24 | [[using-the-retryabletopic-annotation]] | 
| 18 | 25 | == Using the `@RetryableTopic` annotation | 
|  | 
0 commit comments