Skip to content

Change to hostid hash generation docs#8364

Open
DavidBoike wants to merge 1 commit into
masterfrom
hostid-change
Open

Change to hostid hash generation docs#8364
DavidBoike wants to merge 1 commit into
masterfrom
hostid-change

Conversation

@DavidBoike

@DavidBoike DavidBoike commented Jun 22, 2026

Copy link
Copy Markdown
Member

Hopefully for more clarity

@@ -0,0 +1,28 @@
## NServiceBus

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shown as a delete/add but really a rename. When NServiceBus 11 is released, from the context of the FIPS article, XxHash128 is already the default so there's nothing to worry about, so this whole partial goes away.

> [!WARNING]
> Changing the host identifier algorithm changes the host ID that identifies an endpoint in ServicePulse and ServiceControl. Changes to the algorithm will cause existing known endpoints to appear inactive in the ServicePulse [heartbeats](/monitoring/heartbeats/in-servicepulse.md) and [monitoring](/monitoring/metrics/in-servicepulse.md) views while new instances (with the changed host identifiers) appear in their place. Stale instances should be [removed from the monitoring view](/monitoring/metrics/in-servicepulse.md#disconnected-endpoints-removing-disconnected-endpoints).
>
> See the [NServiceBus version 10 to 11 upgrade guide](/nservicebus/upgrades/10to11/#host-identifier-algorithm-change) for more information on migrating from MD5 to the XxHash128 hash algorithm. No newline at end of file

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Warning attempts to more clearly show what is going to happen if you change during the 10 timeframe, and routes all other upgrade concerns to the upgrade guide.

This change provides a path for customers who require **FIPS-compliant** host identifiers (see [FIPS compliance](/nservicebus/compliance/fips.md)). The legacy MD5-based algorithm is not FIPS-compliant; by moving to the new `XxHash128` algorithm, the framework uses a compliant standard by default.

To ensure a predictable transition, this is designed as a multi-phase migration. In version 11, the new algorithm becomes the default. By making this an explicit switch rather than an automatic change, there is a clear "escape hatch" to preserve legacy host IDs if correlation with older monitoring data (such as ServicePulse) must be maintained during the transition.
To ensure a predictable transition, this is designed as a multi-phase migration:

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Introduce the table as a (hopefully) easily consumable overview of what is going to happen in each version

AppContext.SetSwitch("NServiceBus.Core.Hosting.UseV2DeterministicGuid", false);
```

Or via environment variable (.NET 9+):

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We're talking about NServiceBus 10+ which is already forcing .NET 10+ so that detail seems potentially confusing.


In version 11, the XxHash128 algorithm will become the default, and the legacy MD5 algorithm will require explicit opt-out. In version 12, the legacy MD5 algorithm will be removed entirely.

### Manual host identifier override (legacy approach)

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Left this section out of the renamed file. 10.0 and 10.1 will soon be unsupported and if you want info about NSB 9 you should switch to that in the dropdown.

Luckily docs engine has no complaints about not using these two _All snippets in one of the versions.

@DavidBoike DavidBoike requested a review from danielmarbach June 22, 2026 16:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants