public synchronized void destinationAvailable(Integer destinationId) {
        if (activeDestinationIds.contains(destinationId)) {
            throw new SiddhiAppValidationException("Destination ID " + destinationId + " already registered");
        }

        ArrayList<Integer> newDestinationIds = new ArrayList<>(activeDestinationIds);
        newDestinationIds.add(destinationId);
        //Destination IDs are implied by the order they appear in @sink annotation. i.e, the first @desination appear
        // is assigned ID 0 and the second is assigned 1 and so on. IDs are not changed once assigned. Therefore,
        // sorting the Ids once a new ID is added to keep the IDs in the same order as their respective @destination
        // annotations are listed
        Collections.sort(newDestinationIds);
        activeDestinationIds = newDestinationIds;
    }
Remove a destination to available set of destination IDs. Once this method is called for a given
destination ID, that particular destination ID will be considered when getDestinationsToPublish() is called

@param destinationId the ID of the destination to be check for availability.
modules/siddhi-core/src/main/java/io/siddhi/core/stream/output/sink/distributed/DistributionStrategy.java