Skip to content

Commit 6d74450

Browse files
committed
Use topic-per-event by default and revert to single-topic only when topic explicitly specified
1 parent e320ca4 commit 6d74450

File tree

1 file changed

+24
-19
lines changed

1 file changed

+24
-19
lines changed

src/ServiceControl.Transports.ASBS/ASBSTransportCustomization.cs

Lines changed: 24 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -24,36 +24,41 @@ protected override void CustomizeTransportForMonitoringEndpoint(EndpointConfigur
2424
protected override AzureServiceBusTransport CreateTransport(TransportSettings transportSettings, TransportTransactionMode preferredTransactionMode = TransportTransactionMode.ReceiveOnly)
2525
{
2626
var connectionSettings = ConnectionStringParser.Parse(transportSettings.ConnectionString);
27-
TopologyOptions topologyOptions;
27+
TopicTopology selectedTopology;
2828

2929
var serviceBusRootNamespace = new SettingsRootNamespace("ServiceControl.Transport.ASBS");
3030
if (SettingsReader.TryRead<string>(serviceBusRootNamespace, "Topology", out var topologyJson))
3131
{
32-
topologyOptions = JsonSerializer.Deserialize<TopologyOptions>(topologyJson);
32+
//Load topology from json
33+
selectedTopology = TopicTopology.FromOptions(JsonSerializer.Deserialize<TopologyOptions>(topologyJson));
3334
}
34-
else
35+
else if (connectionSettings.TopicName != null)
3536
{
36-
var options = new MigrationTopologyOptions
37+
//Bundle name provided -> use migration topology
38+
selectedTopology = TopicTopology.FromOptions(new MigrationTopologyOptions
3739
{
3840
TopicToPublishTo = connectionSettings.TopicName ?? DefaultSingleTopic,
3941
TopicToSubscribeOn = connectionSettings.TopicName ?? DefaultSingleTopic,
40-
PublishedEventToTopicsMap =
41-
{
42-
["ServiceControl.Contracts.CustomCheckFailed"] = "ServiceControl.Contracts.CustomCheckFailed",
43-
["ServiceControl.Contracts.CustomCheckSucceeded"] = "ServiceControl.Contracts.CustomCheckSucceeded",
44-
["ServiceControl.Contracts.HeartbeatRestored"] = "ServiceControl.Contracts.HeartbeatRestored",
45-
["ServiceControl.Contracts.HeartbeatStopped"] = "ServiceControl.Contracts.HeartbeatStopped",
46-
["ServiceControl.Contracts.FailedMessagesArchived"] = "ServiceControl.Contracts.FailedMessagesArchived",
47-
["ServiceControl.Contracts.FailedMessagesUnArchived"] = "ServiceControl.Contracts.FailedMessagesUnArchived",
48-
["ServiceControl.Contracts.MessageFailed"] = "ServiceControl.Contracts.MessageFailed",
49-
["ServiceControl.Contracts.MessageFailureResolvedByRetry"] = "ServiceControl.Contracts.MessageFailureResolvedByRetry",
50-
["ServiceControl.Contracts.MessageFailureResolvedManually"] = "ServiceControl.Contracts.MessageFailureResolvedManually"
51-
}
52-
};
53-
topologyOptions = options;
42+
EventsToMigrateMap = [
43+
"ServiceControl.Contracts.CustomCheckFailed",
44+
"ServiceControl.Contracts.CustomCheckSucceeded",
45+
"ServiceControl.Contracts.HeartbeatRestored",
46+
"ServiceControl.Contracts.HeartbeatStopped",
47+
"ServiceControl.Contracts.FailedMessagesArchived",
48+
"ServiceControl.Contracts.FailedMessagesUnArchived",
49+
"ServiceControl.Contracts.MessageFailed",
50+
"ServiceControl.Contracts.MessageFailureResolvedByRetry",
51+
"ServiceControl.Contracts.MessageFailureResolvedManually"
52+
]
53+
});
54+
}
55+
else
56+
{
57+
//Default to topic-per-event topology
58+
selectedTopology = TopicTopology.Default;
5459
}
5560

56-
var transport = connectionSettings.AuthenticationMethod.CreateTransportDefinition(connectionSettings, TopicTopology.FromOptions(topologyOptions));
61+
var transport = connectionSettings.AuthenticationMethod.CreateTransportDefinition(connectionSettings, selectedTopology);
5762
transport.UseWebSockets = connectionSettings.UseWebSockets;
5863
transport.EnablePartitioning = connectionSettings.EnablePartitioning;
5964

0 commit comments

Comments
 (0)