Transaction Propagation to an external system

My application needs to communicate with an external system, proably to propagate the transaction context. But how the external system is exposed is not been told. As a matter of fact, this external system is not explicitly given. However it is mandatory one for the given problem. How do we go about this problem. And an another question , how do we address the peroformance of database retrieval in our design especially when we do not design the schema.

For the external system, you can list your assumptions as to how you will communicate. If you can't control the external system, you can't propagate a transaction there though. Similarly, you wouldn't be communicating directly with the database of the external system. They should be providing an API to get at the info.