The Subscription table has an additional nullable column LogicalEndpoint which is null unless additional configuration is used for identifying logical endpoints.
The TimeoutEntity table CorrelationId column is no longer populated, the value is contained within the Headers column instead (which it always was).
NSB 4.7.12 and NSB 7.3.0 endpoints are able to send messages, publish events and defer commands with the same NServiceBus database. NSB 7.3.0 endpoints are able to directly defer commands to NSB 4.7.12 endpoints due to enhancements in the message sending API. Deferred messages in NSB 4.7.12 endpoints are always processed by the same originating queue, but testing of the defer process still worked as previously (including the correlationId header extraction).
If the Subscription table LogicalEndpointcolumn is not found the NSB 7.3.0 endpoint will refuse to start. The NSBus 7.3.0 endpoint can be configured to automatically modify the SQL database tables, but given how small the change is it would be better to make the change once via a script.
Other than the additional column the two endpoints were able to co-exist with the same NServiceBus subscription / timeoutentity database.
{
"NServiceBus.MessageId":"aae386d4-e3f8-4891-8b00-abe800acdf66",
"NServiceBus.CorrelationId":"aae386d4-e3f8-4891-8b00-abe800acdf66",
"NServiceBus.OriginatingEndpoint":"Endpoint4712",
"$.diagnostics.originating.hostid":"04fc67979d70048e29e55e8c7f4a0956",
"NServiceBus.MessageIntent":"Send",
"NServiceBus.Version":"4.7.12",
"NServiceBus.TimeSent":"2020-06-28 09:29:24:604821 Z",
"NServiceBus.OriginatingMachine":"computer",
"NServiceBus.ContentType":"application/json",
"NServiceBus.EnclosedMessageTypes":"Contracts.Events.IPaymentIntentAdded, Contracts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null",
"CorrId":"aae386d4-e3f8-4891-8b00-abe800acdf66\\0",
"WinIdName":"",
"NServiceBus.RelatedTo":"bf14dfc5-e05a-47f0-b1bc-abe800acdf3a",
"NServiceBus.ConversationId":"70fc4223-66c7-4684-b2ca-abe800acdee9",
"NServiceBus.IsDeferredMessage":"True",
"NServiceBus.Temporary.DelayDeliveryWith":"00:00:05",
"NServiceBus.Timeout.Expire":"2020-06-28 09:29:29:605811 Z",
"NServiceBus.Timeout.RouteExpiredTimeoutTo":"Endpoint4712@computer",
"NServiceBus.Timeout.ReplyToAddress":"Endpoint4712@computer"
}{
"NServiceBus.MessageId":"0d104264-8190-45e9-af9f-abe800a16182",
"NServiceBus.MessageIntent":"Send",
"NServiceBus.RelatedTo":"a564855a-4aab-4bfc-94b5-abe800b1dbd1",
"NServiceBus.ConversationId":"18571368-b994-44f7-a10c-abe800b1db82",
"NServiceBus.CorrelationId":"d18b0acf-07c0-45b7-b6a1-abe800b1dbe7",
"NServiceBus.OriginatingMachine":"computer",
"NServiceBus.OriginatingEndpoint":"Endpoint730",
"$.diagnostics.originating.hostid":"abc0e0c640f2c4314456160d1e9e200e",
"NServiceBus.ReplyToAddress":"Endpoint730@computer",
"NServiceBus.ContentType":"application\/json",
"NServiceBus.EnclosedMessageTypes":"Contracts.Commands.ICheckIfPaymentShouldBeExpired, Contracts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null",
"NServiceBus.Version":"7.2.0",
"NServiceBus.TimeSent":"2020-06-28 09:47:34:264428 Z",
"NServiceBus.Timeout.RouteExpiredTimeoutTo":"Endpoint4712@computer",
"NServiceBus.Timeout.Expire":"2020-06-28 09:47:39:263427 Z",
"CorrId":"d18b0acf-07c0-45b7-b6a1-abe800b1dbe7\\0"
}CREATE TABLE [dbo].[Subscription](
[SubscriberEndpoint] [varchar](450) NOT NULL,
[MessageType] [varchar](450) NOT NULL,
[Version] [varchar](450) NULL,
[TypeName] [varchar](450) NULL,
PRIMARY KEY CLUSTERED
(
[SubscriberEndpoint] ASC,
[MessageType] ASC
)CREATE TABLE [dbo].[Subscription](
[SubscriberEndpoint] [varchar](450) NOT NULL,
[MessageType] [varchar](450) NOT NULL,
[Version] [varchar](450) NULL,
[TypeName] [varchar](450) NULL,
[LogicalEndpoint] [varchar](450) NULL,
PRIMARY KEY CLUSTERED
(
[SubscriberEndpoint] ASC,
[MessageType] ASC
)CREATE TABLE [dbo].[TimeoutEntity](
[Id] [uniqueidentifier] NOT NULL,
[Destination] [nvarchar](1024) NULL,
[SagaId] [uniqueidentifier] NULL,
[State] [varbinary](max) NULL,
[Time] [datetime] NULL,
[CorrelationId] [nvarchar](1024) NULL,
[Headers] [nvarchar](max) NULL,
[Endpoint] [nvarchar](440) NULL,
PRIMARY KEY NONCLUSTERED
(
[Id] ASC
)CREATE TABLE [dbo].[TimeoutEntity](
[Id] [uniqueidentifier] NOT NULL,
[Destination] [nvarchar](1024) NULL,
[SagaId] [uniqueidentifier] NULL,
[State] [varbinary](max) NULL,
[Time] [datetime] NULL,
[Headers] [nvarchar](max) NULL,
[Endpoint] [nvarchar](440) NULL,
PRIMARY KEY NONCLUSTERED
(
[Id] ASC
)