The rationale behind the price increasing is that as a system grows it becomes more complex. Meaning that with more logical endpoints, NServiceBus is solving more complexity for the system.
Any metric we use to determine license fees will have an incentive to reduce costs. The previous licensing model incentivized running all endpoints on a single machine in order to reduce the number of “nodes”. It also made it tricky to count nodes in containerized environments without special classes of licenses (elastic, SaaS, etc.) meaning there was a lot of confusion around what license was applicable in what environment.
By measuring the number of logical endpoints, it means that systems can grow slowly and adding new endpoints can be done on an opt-in basis. New functionality can be included as new handlers in existing endpoints or new endpoints. If the new handler is added to an existing endpoint, it is easy to move the new handler to a new endpoint at a later stage - copy the handler and message types to a new assembly. Moving to a new endpoint becomes an explicit decision that can be made for specific reasons (e.g. Needing different recoverability policies, or different way of dealing with priority customers).
Perhaps it is important to note that only LOGICAL endpoints are counted for licensing, not physical endpoints.
For interest, we also considered
- Number of physical endpoints
- Number of message types
- Number of message handlers
- Message size
- Number of sagas
All of which incentivize different behaviours which are more negative and harder to evolve than the number of logical endpoints.
In your example, you will not be paying more for distributing the same load over twice as many servers. If you are distributing load, that’s scaling out which means it’s the same logical endpoint. You can distribute your endpoints as many times as you need to for scale or recoverability purposes. From a licensing perspective, it is still only 1 logical endpoint.