But if you’re having trouble with the standard rest or bulk apis, that’s 100% on you.
Salesforce API?
Sandboxes drift from production in both metadata and data. Refreshes change record ids.
API access is gated by edition. Professional edition has none by default. Salesforce sells MuleSoft as the fix to their own shit architecture.
Custom objects and fields mean that connecting successfully doesn’t establish what represents a customer, subscription or completed sale. Even standard objects can be used differently between organizations.
Metadata deployment is SOAP-based and slow. Dependencies between components break deploys and is massive pain to debug.
And notice that I said integration, not API integration. There’s a shit storm of terrible way to integrate beyond just simple API. Have fun with Bulk 1 or 2, Composite, Streaming, Platform Events, Change Data Capture, Tooling, GraphQL. An my most hated item, anything web based.
I seriously want to talk to someone that have a good time integrating against Salesforce. Maybe I will have my mind blown as to how easy it could be, but I suspect I will have the same experience I have every time I critical scrutinize and such situation: it’s just as terrible as it seems and the person claiming it’s easy is hands down producing close to nothing of value.
I find it odd you would expect sandboxes to not drift and record ids to not change on refreshes. People are working on sandboxes so they will naturally diverge from production, same for record ids.
Refreshes mean that data will be wiped out so you have to preserve the data you want first, then restore it after the refresh. Isn't that the same with any other database where you dump a copy of production on an instance?
I don't see a difference between custom objects in SF and any plain SQL database table that needs to be changed to accommodate a new requirement.
Dependencies between components break deployments - isn't that universally true?
What are other platforms where such things don't happen?