I have been researching this, and am coming up with very little. I'm coming here before I attempt talking to Salesforce.
General
I've noticed in the past 2+ months that when inserting a new record, via the GUI, that you cannot search for (let's assume) that EMAIL address and find the record right away all of the time. It's very noticeable versus prior experience where you seemingly could immediately search and find it right after creating it (again, via the GUI). My guess is (perhaps to make SF overall work better?) they are not updating the Index immediately? Or similar, that when I do this insert on "server7", it is taking LONGER for it to get to "server12" in that Instance, causing it to not show up "immediately" when querying "server 12". This is all guesswork, of course.
Specific
We have had an ongoing problem for literally years with the following logic, done via API calls from PHP code:
- web visitor clicks SUBMIT to put themselves into Salesforce
- PHP talks to SF via API, sees if they exist in Contact, then Lead
- IF THEY DO EXIST, data is stored/edited on the pre-existing record
- IF THEY DO NOT EXIST, a Lead is created
The problem is, no matter how many developers get involved over the years, no matter how they re-do the PHP side of things... we get duplicates. We actually get 25-50 duplicates (2-3 PER EMAIL ADDRESS usually) per day. (Email Address is our unique key in this case)
When JohnBob comes to the site and submits himself, then submits himself again, then goes to a different page and submits himself a third time, sometimes he gets in as a new Lead THREE TIMES. Again, my belief that the Index is slow to update and subsequent searches for him fail.
Any thoughts? If this "queue" exists (which holds JohnBoy until he is actually inserted), I'd want the PHP to check THAT as well after checking Contact and Lead.
UPDATE regarding my "server7" "server12" comments... I'm implying different database servers within the same instance (in my case, NA4), and basic "clustering" and "mirroring" technology - the record INSERTING on one server, and "Eventually" making it to the OTHER servers.
Attempts to find related Questions include: Delaying Trigger until all related records are inserted? Delay from Salesforce.com in querying records, Informatica Why sites has a delay when I'm working with data?