Retiring outbound endpoints and bindings

It might happen that you need to change the connectivity configuration of your solution. To avoid leaving incoming events without anywhere to go or without the required binding, you must consider what happens as a result of your change.

About this task

If you want to remove an endpoint from your connectivity configuration for example, you must plan for the possibility that emitted events are still in the runtime environment from the previous solution version. Events that no longer have an outbound endpoint to go to are then marooned.

It is important to understand the impact of your change before you deploy the modified version so that you can take the correct action.

You can use the following steps to resolve the effect of removing an endpoint from a solution:

Procedure

Take one of the following actions:
  • Remove the unwanted endpoint (and potentially the binding too) from the new solution version. Marooned events can then be identified and discarded by using the outboundBufferManager command after the new solution version is deployed.
  • Keep the endpoint in the new solution version, and point the endpoint to a binding that defines no delivered events. After you deploy the updated solution, no new events are emitted to the outbound endpoint buffer, and events that are emitted by the previous version continue to be delivered to the endpoint. When all the events from the previous version are delivered, you can remove the unused endpoint from the next version you deploy.

Example

The following figure demonstrates two versions of a solution named MySolution. In version 1.0, the solution defines three outbound endpoints with three different bindings. In version 1.1, the solution no longer requires Endpoint 2 as no events are delivered to this endpoint. However, to prevent events of type C from being marooned the connectivity configuration for version 1.1 includes the definition of Endpoint 2 with a modified binding Y that defines delivering no events. Endpoint 2 continues to exist in the solution so that the events that are emitted by version 1.0 arrive at their target endpoint.

Retiring outbound endpoints when you deploy a new solution version

After a certain time, you can check that all events emitted by version 1.0 are cleared from Endpoint 2 by using outboundBufferManager. You can then remove Endpoint 2 completely in version 1.2 of MySolution.