2 ms·
That's why you need an abstraction layer for each 3rd party provider. I've been doing online businesses 20+ years and every time we didn't create an abstraction
by freefaler 3y ago
That's why you need an abstraction layer for each 3rd party provider. I've been doing online businesses 20+ years and every time we didn't create an abstraction layer our switching cost rose.
Many "startups" who are hungry enough to provide good value for money switch to "enterprise" pricing when investor money run out and your operations costs may rise a lot or you get "discontinued". Look what Atlassian did with self-hosted versions.
Also for tracking/logging layers it may be beneficial to mirror the data you're sending to 3rd party providers to your own db/logs, because you won't get data locked when switching.
So my point is that you need to outsource smartly and keep in mind that the 3rd party dependencies increase operations risk.
BTW that's why any user request shouldn't depend on 3rd party resources in a blocking matter (e.g. synchronous JS from vendors' CDN). You might pay more for your hosting but if you factor the service disruption risks you may be better off for mission critical parts.