We are in the process of evaluating SalesForce for use in our enterprise and the one place we are getting a little hung up on is the ability to log and trace transactions. In the past, coming from a home-grown SOA system, I had the ability to inject a header in all calls, set a transaction id at the ESB layer and perform async logging of all child transactions across the enterprise using the original transaction id.
With SalesForce replacing one or more of the SOA systems, would I still have the ability to properly log and trace a call in the following scenario:
1. An external system invokes an update to a lead in Salesforce 1.1 The call passes through our ESB (which generates a GUID to represent the transaction) to Salesforce – the ESB which interfaces with our enterprise logger to record the service call 1.1.1 Salesforce fires the appropriate workflow on lead save 22.214.171.124 Fire platform event containing the GUID and meta data about workflow 126.96.36.199 The workflow calls an external service to update an external system (through ESB and includes the GUID – also logged) 188.8.131.52.1 External service returns data 184.108.40.206 The workflow stores data on lead 220.127.116.11 The workflow adds tasks to lead
We couldn’t understand how we would pass the GUID from the external service call at step 1.1 to step 18.104.22.168 so the platform event can contain the GUID and we can trace the link between the service call and the workflow execution.
Additionally we couldn’t determine if we need to write custom “wrappers” in apex around each SF service to accept the GUID and pass it downstream or if something like this is native to the platform.