anchor.diff:  value.converter=io.debezium.converters.ByteBufferConverter
   ----
   
  -By default only the `payload` column value (the Avro data) is the sole message value.
  -Using `ByteBufferConverter` as the value converter propagates that value as-is into the Kafka message value.
  -
  +By default, the `payload` column value (the Avro data) is the only message value.
  +Configuration of `ByteBufferConverter` as the value converter propagates the `payload` column value as-is into the Kafka message value.
  +
  +// Type: concept
  +// Title: Emitting additional fields in {prodname} outbox messages 
  +// ModuleID: emitting-additional-fields-in-debezium-outbox-messages
   [[emitting-messages-with-additional-fields]]
  -=== Emitting messages with additional fields
  -
  -The outbox table may contain additional columns that need to be included in the emitted Kafka message.
  -Suppose the table contains an `eventType` column that indicates the type a given event is (e.g. for events of the "purchase order" aggregate type, there might be event types like "order created", "order shipped", etc.).
  -
  -To emit the `eventType` column in the Kafka message headers, use:
  +== Emitting messages with additional fields
  +
  +Your outbox table might contain columns whose values you want to add to the emitted outbox messages. For example, consider an outbox table that has a value of `purchase-order` in the `aggregatetype` column and another column, `eventType`, whose possible values are `order-created` and `order-shipped`. 
  +To emit the `eventType` column value in the outbox message header, configure the SMT like this:
   
   [source]
   ----
  
positive.code: }
  ----
  
  This message is generated by transforming a {prodname} raw message, which looks like:
  
  [source,javascript,indent=0]
  ----
  
negative.code: transforms.outbox.type=io.debezium.transforms.outbox.EventRouter
  transforms.outbox.table.fields.additional.placement=type:envelope:eventType
  ----
  
  // Type: reference
  // ModuleID: options-for-configuring-outbox-eventrouter-transformation
  // Title: Options for configuring `outbox.EventRouter` transformation
  [[outbox-event-router-configuration-options]]
  == Configuration options
  
  The following table describes the options that you can specify for the `outbox.EventRouter` SMT. In the table, the *Group* column indicates a  configuration option classification for Kafka.
  
  .Descriptions of `outbox.EventRouter` SMT configuration options
  [cols="30%a,20%a,10%a,40%a"]
  |===
  |Option
  |Default
  |Group
  |Description
  
  |[[outbox-event-router-property-table-field-event-id]]<<outbox-event-router-property-table-field-event-id, `table.field.event.id`>>
  |`id`
  |Table
  |Specifies the outbox table column that contains the unique event ID.
  
  |[[outbox-event-router-property-table-field-event-key]]<<outbox-event-router-property-table-field-event-key, `table.field.event.key`>>
  |`aggregateid`
  |Table
  |Specifies the outbox table column that contains the event key. When this column contains a value, the SMT uses that value as the key in the emitted outbox message. This is important for maintaining correct order in Kafka partitions.
  
  |[[outbox-event-router-property-table-field-event-timestamp]]<<outbox-event-router-property-table-field-event-timestamp, `table.field.event.timestamp`>>
  |
  |Table
  |By default, the timestamp in the emitted outbox message is the {prodname} event timestamp. To use a different timestamp in outbox messages, set this option to an outbox table column that contains the timestamp that you want to be in emitted outbox messages. 
  
  |[[outbox-event-router-property-table-field-event-payload]]<<outbox-event-router-property-table-field-event-payload, `table.field.event.payload`>>
  |`payload`
  |Table
  |Specifies the outbox table column that contains the event payload.
  
  |[[outbox-event-router-property-table-field-event-payload-id]]<<outbox-event-router-property-table-field-event-payload-id, `table.field.event.payload.id`>>
  |`aggregateid`
  |Table
  |Specifies the outbox table column that contains the payload ID.
  
  |[[outbox-event-router-property-table-fields-additional-placement]]<<outbox-event-router-property-table-fields-additional-placement, `table.fields.additional.placement`>>
  |
  |Table, Envelope
  a|Specifies one or more outbox table columns that you want to add to outbox message headers or envelopes. Specify a comma-separated list of pairs. In each pair, specify the name of a column and whether you want the value to be in the header or the envelope. Separate the values in the pair with a colon, for example:
  
  `id:header,my-field:envelope`
  
  To specify an alias for the column, specify a trio with the alias as the third value, for example: 
  
  `id:header,my-field:envelope:my-alias`
  
  The second value is the placement and it must always be `header` or `envelope`. 
  
  Configuration examples are in {link-prefix}:{link-outbox-event-router}#emitting-additional-fields-in-debezium-outbox-messages[emitting additional fields in {prodname} outbox messages].
  
  |[[outbox-event-router-property-table-field-event-schema-version]]<<outbox-event-router-property-table-field-event-schema-version, `table.field.event.schema.version`>>
  |
  |Table, Schema
  |When set, this value is used as the schema version as described in the link:https://kafka.apache.org/20/javadoc/org/apache/kafka/connect/data/ConnectSchema.html#version--[Kafka Connect Schema] Javadoc.
  
  |[[outbox-event-router-property-route-by-field]]<<outbox-event-router-property-route-by-field, `route.by.field`>>
  |`aggregatetype`
  |Router
  |Specifies the name of a column in the outbox table. The default behavior is that the value in this column becomes a part of the name of the topic to which the connector emits the outbox messages. An example is in the {link-prefix}:{link-outbox-event-router}#route-by-field-example[description of the expected outbox table].
  
  |[[outbox-event-router-property-route-topic-regex]]<<outbox-event-router-property-route-topic-regex, `route.topic.regex`>>
  |`(?<routedByValue>.*)`
  |Router
  |Specifies a regular expression that the outbox SMT applies in the RegexRouter to outbox table records. This regular expression is part of the setting of the `route.topic.replacement` SMT option. +
   +
  The default behavior is that the SMT replaces the default `${routedByValue}` variable in the setting of the `route.topic.replacement` SMT option with the setting of the `route.by.field` outbox SMT option.  
  
  |[[outbox-event-router-property-route-topic-replacement]]<<outbox-event-router-property-route-topic-replacement, `route.topic.replacement`>>
  |`outbox.event{zwsp}.pass:[${routedByValue}]`
  |Router
  a|Specifies the name of the topic to which the connector emits outbox messages. 
  The default topic name is `outbox.event.` followed by the `aggregatetype` column value in the outbox table record. For example, if the `aggregatetype` value is `customers`, the topic name is `outbox.event.customers`. +
   +
  To change the topic name, you can: +
  
  * Set the `route.by.field` option to a different column.
  * Set the `route.topic.regex` option to a different regular expression. 
  
  |[[outbox-event-router-property-route-tombstone-on-empty-payload]]<<outbox-event-router-property-route-tombstone-on-empty-payload, `route.tombstone.on.empty.payload`>>
  |`false`
  |Router
  |Indicates whether an empty or `null` payload causes the connector to emit a tombstone event.
  
  |[[outbox-event-router-property-debezium-op-invalid-behavior]]<<outbox-event-router-property-debezium-op-invalid-behavior, `debezium.op.invalid.behavior`>>
  |`warn`
  |{prodname}
  a|Determines the behavior of the SMT when there is an `UPDATE` operation on the outbox table. Possible settings are: 
  
  * `warn` - The SMT logs a warning and continues to the next outbox table record.
  * `error` - The SMT logs an error and continues to the next outbox table record.
  * `fatal` - The SMT logs an error and the connector stops processing. 
  
  All changes in an outbox table are expected to be `INSERT` operations. That is, an outbox table functions as a queue; updates to records in an outbox table are not allowed. The SMT automatically filters out `DELETE` operations on an outbox table. 
  
  |===
  