> ## Documentation Index
> Fetch the complete documentation index at: https://docs.activeviam.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Tuple loading topic

> Configuration reference for `TupleTopicDescription` properties such as `tupleSupplier`, `columns`, `channels`, and source restrictions, configurable only through Java Spring beans.

<Note>
  Tuple Loading Topics cannot be defined via configuration properties.
</Note>

### Java configuration

`TupleTopicDescription` Spring Beans are picked up as configuration for the DLC.

| Parameter           | Required | Type                                       | Default                                                                  | Description                                                                                                                                                                                                                                                                                                         |
| ------------------- | :------: | ------------------------------------------ | :----------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| name                |     Y    | `String`                                   |                                                                          | Name of the topic.                                                                                                                                                                                                                                                                                                  |
| tupleSupplier       |     Y    | `Function<DlcScope, Collection<Object[]>>` |                                                                          | The tuple supplier.                                                                                                                                                                                                                                                                                                 |
| columns             |          | `List<String>`                             | Columns will implicitly come from the store which is being published to. | The order of columns in the tuples. If a column name matches a datastore column, its parser will be implied. For columns that do not match a datastore column, provide a parser in the channel as a [Custom Field](/configuration/custom-field). Columns without a matching datastore column or parser are skipped. |
| channels            |          | `Set<Channel>`                             | A channel is created using the topic's name as the name of the target.   | [Channels](/configuration/channel)                                                                                                                                                                                                                                                                                  |
| restrictToSources   |          | `Set<String>`                              |                                                                          | Sources *to* which the topic is restricted. See [source to topic matching](/functional/source-to-topic-matching).                                                                                                                                                                                                   |
| restrictFromSources |          | `Set<String>`                              |                                                                          | Sources *from* which the topic is restricted. See [source to topic matching](/functional/source-to-topic-matching).                                                                                                                                                                                                 |

#### Java example

This configuration does not specify a target for the data or the data format.

<Note>
  If the topic is not named the same as the store, the target must be explicitly specified in the [channel](/configuration/channel) of the topic.
</Note>

* The target is implicitly the Atoti table named "Trades".
* The format (column order of the tuples and how input fields are parsed) implicitly comes from the columns and types of the targeted Atoti table, in this case "Trades".

```java theme={"languages":{"custom":["/engine/python-sdk/0.9/languages/pycon.tmLanguage.json"]}}
@Bean
public TupleTopicDescription tupleTopic() {
    return TupleTopicDescription.builder("trades", this::generateTuples)
            .build();
}
```
