<a id="timestamprouter"></a>

# Kafka Connect TimestampRouter SMT Usage Reference for Confluent Cloud

The following provides usage information for the Kafka SMT `org.apache.kafka.connect.transforms.TimestampRouter`.

## Description

Update the record’s topic field as a function of the original topic value and
the record timestamp.

This is useful for sink connectors, because the topic field often determines the
equivalent entity name in the destination system (for example, a database table
or search index name). See [Kafka Connect MessageTimestampRouter SMT Usage Reference for Confluent Cloud](messagetimestamprouter.md#messagetimestamprouter) to extract the timestamp from a specified message field.

## Example

This configuration snippet shows how to use `TimestampRouter` to route
messages to topics and include a formatted timestamp.

```json
"transforms": "TimestampRouter",
"transforms.TimestampRouter.type": "org.apache.kafka.connect.transforms.TimestampRouter",
"transforms.TimestampRouter.topic.format": "foo-${topic}-${timestamp}",
"transforms.TimestampRouter.timestamp.format": "YYYYMM"
```

Before: `ordersTopic`

After: `foo-ordersTopic-201804`

## Properties

| Name               | Description                                                                                                                                                                                                      | Type   | Default                 | Valid Values   | Importance   |
|--------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------|-------------------------|----------------|--------------|
| `timestamp.format` | Format string for the timestamp that is compatible with `java.text.SimpleDateFormat`. For additional details, see [SimpleDateFormat](https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html). | string | yyyyMMdd                |                | high         |
| `topic.format`     | Format string which can contain `${topic}` and `${timestamp}` as placeholders for the topic and timestamp, respectively.                                                                                         | string | `${topic}-${timestamp}` |                | high         |

## Predicates

Transformations can be configured with *predicates* so that the transformation
is applied only to records which satisfy a condition. You can use predicates in
a transformation chain and, when combined with the [Kafka Connect Filter (Kafka) SMT Usage Reference for Confluent Cloud](filter-ak.md#ak-filter), predicates
can conditionally filter out specific records. For details and examples, see [Predicates](filter-ak.md#predicates).
