How do you design a consumer which calls 2 web services from different sources and then combine results from them to give a final result.
The question is that the consumer is responsible for transaction scope. So if one of the service call fails then the other service call should be reverted.
Any help will be appreciated
The pattern is called compensating transaction, I believe.
Briefly, it means that if service A makes some operation B available, then it should also make an operation C available that is able to revert the effect of invoking operation B.
This way, a client of service A can call operation B and, if things fail when invoking some other operation on the same or another service, operation C to restore the state in service A as it was before the operation B was called.