Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
This article describes the deprecation of the AMQP protocol for the change event streaming (CES) feature in SQL Server 2025, Azure SQL Database, Azure SQL Managed Instance, and SQL database in Microsoft Fabric.
The deprecation of the AMQP protocol introduces a breaking change to the destination_type configuration value when creating new stream groups. This article explains how these changes affect new and existing stream groups and how to migrate existing stream groups from the AMQP protocol to the Kafka protocol.
What is AMQP protocol?
The AMQP protocol ("AMQP") was one of two protocols that CES supported when sending change events to Azure Event Hubs and Fabric Eventstream. It was a service-to-service implementation that published events to Azure Event Hubs and Fabric Eventstream.
Before this breaking change, you specified the protocol in the destination_type configuration value when configuring a stream group, using one of the following supported values:
AzureEventHubsAMQP- AMQP protocolAzureEventHubsApacheKafka- Kafka protocol
After this breaking change, the only supported destination_type value for newly created stream groups is AzureEventHubs, which uses the Kafka protocol.
Starting August 15, 2026, newly created stream groups must use AzureEventHubs as the destination_type. Attempts to create a stream group using previous values fail.
The consumers of messages published to Azure Event Hubs can choose between the AMQP or Kafka protocol regardless of the protocol that publishes the message.
How to migrate AMQP-configured stream groups to Kafka
Existing CES groups configured with AzureEventHubsAMQP continue to publish messages by using the AMQP protocol until April 2027. Recreate your existing AMQP-configured stream groups in SQL Server 2025, Azure SQL Database, Azure SQL Managed Instance, or SQL database in Microsoft Fabric by using AzureEventHubs as the destination_type as soon as possible.
Use the following query to identify all configured stream groups:
exec sp_help_change_event_stream_groups
Save the configuration values for the stream groups that have AzureEventHubsAMQP in the streaming_dest_type column. You need these values when creating the new stream groups.
Use the following query to identify the tables in each stream group that you need to migrate:
exec sys.sp_help_change_event_stream_tables
To migrate an AMQP-configured stream group to Kafka, follow these steps:
Create a replacement stream by using the sp_create_change_event_stream_group stored procedure. Specify
AzureEventHubsas thedestination_typeparameter.The
destination_locationparameter expects port 9093, such as the following example:myEventHubsNamespace.servicebus.windows.net:9093/myEventHubsInstance.The Kafka protocol supports Microsoft Entra or service key authentication. SAS authentication is now unavailable for CES.
Remove each table, one by one, from the old stream group by using sys.sp_remove_object_from_event_stream_group:
exec sys.sp_remove_object_from_event_stream_group @stream_group_name = '<old_stream_group_name>', @object_name = '<schema.table_name>'Add each table you removed from the old stream group to the new replacement stream group by using sp_add_object_to_change_event_stream_group:
exec sys.sp_add_object_to_change_event_stream_group @stream_group_name = '<new_stream_group_name>', @object_name = '<schema.table_name>'Once you add all tables to the new stream group, use sp_drop_change_event_stream_group to remove the old stream group. For details, review configure CES.
exec sp_drop_change_event_stream_group @stream_group_name = '<old_stream_group_name>'Verify the new stream group is active by running
sp_help_change_event_stream_groupsand confirming it showsAzureEventHubsas the streaming_dest_type.
Repeat this process for every AMQP-configured stream group in your environment.
Moving tables to new stream groups (Kafka)
CES scans and publishes changes from the log file the moment they are created but publishing latency can cause events to lag. When you remove a table from a stream group, pending changes in the log file don't get published. As such, carefully coordinate moving tables between stream groups to avoid missing events.
Before removing a table from a stream group, check the sys.dm_change_feed_log_scan_sessions DMV to ensure there are no pending changes to publish on the tables. If there are pending changes, wait until the process publishes them before removing the table from the old stream group and adding it to the new stream group.
To mitigate the risk of missing events, use one of the following approaches:
- Move the tables between stream groups during a dedicated maintenance window when no writes are happening to the tables.
- Place an exclusive lock on the tables that are being streamed during a period of low activity to prevent new writes to those tables. Only release the exclusive lock after the tables are in the new stream group.
Deprecation timelines
The deprecation of the AMQP protocol follows these two timelines:
| Stream group type | Effective date | Impact |
|---|---|---|
| New stream groups | August 15, 2026 | Newly created stream groups must specify AzureEventHubs as the destination_type. Attempts to use either AzureEventHubsAMQP or AzureEventHubsApacheKafka fail. |
| Existing stream groups using the AMQP protocol | April 2027 | Stream groups already configured with AzureEventHubsAMQP continue to work normally until this date. They must be migrated to use the Kafka protocol before support for the AMQP protocol is removed. |
Consumers of published messages don't need to make any changes.
Deprecation impact
This section describes the impact of AMQP protocol deprecation, such as:
- Impact on consumers of published messages
- Impact on existing AMQP stream groups
- Impact on newly created stream groups
- Impact on publisher network configuration
Impact on consumers of published messages
The protocol used to write to the destination (either Azure Event Hubs or Fabric Eventstream) is independent from the protocol used by message consumers. Therefore, switching from AMQP to Kafka protocol for message publishing doesn't impact message consumers. They can continue consuming messages using either protocol.
Impact on existing AMQP stream groups
Existing stream groups configured with AzureEventHubsAMQP continue working as-is by using the AMQP protocol. There's no immediate interruption or configuration change required for these groups. However, you must migrate AMQP-configured stream groups to use the Kafka protocol before support for the AMQP protocol is removed in April 2027.
Impact on newly created stream groups
Starting August 15, 2026, the only allowed destination_type value for newly created stream groups is AzureEventHubs. Attempts to create a stream group by using either previous value, AzureEventHubsAMQP or AzureEventHubsApacheKafka, fail with the following error message:
Msg 23626, Level 16, State 2, Line 481, An error occurred. The error/state returned was 23618/5: 'The value provided for the argument '@destination_type' is invalid. Allowed values: AzureEventHubs.'
Update any automation scripts that create stream groups before this date. The destination_type parameter must use AzureEventHubs instead of AzureEventHubsAMQP or AzureEventHubsApacheKafka.
The Kafka protocol uses Microsoft Entra or service key authentication to connect to Azure Event Hubs or Fabric Eventstream. If your existing AMQP stream groups use SAS authentication, you need to switch to either Microsoft Entra or service key authentication when creating new stream groups. See Configure change event streaming for details on how to configure authentication for stream groups.
Impact on publisher network configuration
Depending on how you configure the network on the publishing side, you might need to reconfigure allowed outbound ports to use Kafka's port 9093, instead of the 5671 and 5672 ports used by AMQP. The publisher must allow outbound traffic on port 9093.
Only leave ports 5671 and 5672 open if you have existing stream groups that still use the AMQP protocol. These ports aren't required for newly created stream groups that use the Kafka protocol.
For more information, see Azure Event Hubs firewall configuration per protocol.