anchor.diff:  transforms.outbox.type=io.debezium.transforms.outbox.EventRouter
   ----
   
  -=== Using Avro as the payload format
  -
  -The outbox routing SMT supports arbitrary payload formats, as the payload column value is passed on transparently.
  -As an alternative to working with JSON as shown above it is therefore also possible to use Avro.
  -This can be beneficial for the purposes of message format governance and making sure outbox event schemas evolve in a backwards-compatible way.
  -
  -How a source application produces Avro messages as an outbox event payload is out of the scope of this documentation.
  -One possibility could be to leverage the `KafkaAvroSerializer` class and use it to serialize `GenericRecord` instances.
  -In order to ensure that the Kafka message value is the exact Avro binary data,
  +// Type: concept
  +// Title: Using Avro as the payload format in {prodname} outbox messages
  +// ModuleID: using-avro-as-the-payload-format-in-debezium-outbox-messages
  +[[avro-as-payload-format]]
  +== Using Avro as the payload format
  +
  +The `outbox.EventRouter` SMT supports arbitrary payload formats. The `payload` column value in an outbox table is passed on transparently. An alternative to working with JSON is to use Avro.
  +This can be beneficial for message format governance and for ensuring that outbox event schemas evolve in a backwards-compatible way.
  +
  +How a source application produces Avro formatted content for outbox message payloads is out of the scope of this documentation.
  +One possibility is to leverage the `KafkaAvroSerializer` class to serialize `GenericRecord` instances.
  +To ensure that the Kafka message value is the exact Avro binary data,
   apply the following configuration to the connector:
   
   [source]
  
positive.code: [id="outbox-event-router"]
  = Outbox Event Router
  
  
negative.code: payload       | jsonb                  |
  ----
  
  .Descriptions of expected outbox table columns
  [cols="30%a,70%a"]
  |===
  |Column
  |Effect
  
  |`id`
  |Contains the unique ID of the event. In an outbox message, this value is a header. You can use this ID, for example, to remove duplicate messages. +
   +
  To obtain the unique ID of the event from a different outbox table column, set the {link-prefix}:{link-outbox-event-router}#outbox-event-router-property-table-field-event-id[`table.field.event.id` SMT option] in the connector configuration.  
  
  |[[route-by-field-example]]`aggregatetype`
  |Contains a value that the SMT appends to the name of the topic to which the connector emits an outbox message. The default behavior is that this value replaces the default `${routedByValue}` variable in the {link-prefix}:{link-outbox-event-router}#outbox-event-router-property-route-topic-replacement[`route.topic.replacement`] SMT option. +
   +
  For example, in a default configuration, the {link-prefix}:{link-outbox-event-router}#outbox-event-router-property-route-by-field[`route.by.field`] SMT option is set to `aggregatetype` and the `route.topic.replacement` SMT option is set to `outbox.event.${routedByValue}`. Suppose that your application adds two records to the outbox table. In the first record, the value in the `aggregatetype` column is `customers`. In the second record, the value in the `aggregatetype` column is `orders`. The connector emits the first record to the `outbox.event.customers` topic. The connector emits the second record to the `outbox.event.orders` topic. +
   +
  To obtain this value from a different outbox table column, set the {link-prefix}:{link-outbox-event-router}#outbox-event-router-property-route-by-field[`route.by.field` SMT option] in the connector configuration. 
  
  |`aggregateid`
  |Contains the event key, which provides an ID for the payload. The SMT uses this value as the key in the emitted outbox message. This is important for maintaining correct order in Kafka partitions. +
   +
  To obtain the event key from a different outbox table column, set the {link-prefix}:{link-outbox-event-router}#outbox-event-router-property-table-field-event-key[`table.field.event.key` SMT option] in the connector configuration. 
  
  |`type`
  |A user-defined value that helps categorize or organize events.  
  
  a|`payload`
  |The representation of the event itself. The default structure is JSON. The content in this field becomes one of these: 
  
  * Part of the outbox message `payload`.
  * If other metadata, including `eventType` is delivered as headers, the payload becomes the message itself without encapsulation in an envelope. 
  
  To obtain the event payload from a different outbox table column, set the {link-prefix}:{link-outbox-event-router}#outbox-event-router-property-table-field-event-payload[`table.field.event.payload` SMT option] in the connector configuration. 
  
  |===
  
  // Type: concept
  // Title: Basic {prodname} outbox event router SMT configuration
  // ModuleID: basic-debezium-outbox-event-router-smt-configuration
  [[basic-outbox-configuration]]
  == Basic configuration
  
  To configure a {prodname} connector to support the outbox pattern, configure the `outbox.EventRouter` SMT. For example, the basic configuration in a `.properties` file looks like this: 
  
  [source]
  ----
  