Curious what the HN crowd thinks about this issue?
Curious what the HN crowd thinks about this issue?
If you get to a point where you are locked-in it's because you spent years building into a solution that was your most expedient and renumerative option. At some future point in time, a future you or the person who replaces you may want to reconsider a re-platform. Let them worry about that.
I worry about development working on glue code/solve problems to the detriment of their businesses actual needs.
Sure right now it's your easiest option, but in the future the vendor might be the only one offering a compatible version of CoolNewFeatureXY at prices that make your business uncompetitive to the other businesses that have the freedom to choose between vendors.
> Because you might have to pivot away because it might not support your requirements in the future? Then just pay that cost in the future if it ever comes.
That's pretty much the textbook definition of debt.
I used "build in house" as a simple example of a broader principle--if there is a "freedom to choose" option that magically lets you migrate from one platform to another at zero cost while imposing no overhead over the AWS solution, then absolutely you should do it. But generally these solutions require a significant up front investment and rarely actually deliver on their promise of abstracting away the underlying platform (now you're wed to $ABSTRACTION on AWS, for example), but that's another story.
> That's pretty much the textbook definition of debt.
Nonsense. That's not debt, it's deciding to wait to pay for something in cash until you know you want to buy it. It's not debt to wait to spend $30K (cash) on a car until you're sure you want to buy it. The "tech debt" analogy is intended to convey interest--you know you want to change course but you do the expedient thing now knowing that you're going to continually bump into it (each bump is "interest") until you can pay it off properly. This is the opposite--if you build it in house or use a dodgy "platform-agnostic" abstraction, you're going to be paying interest on something you will very likely never even need!
I think you’re confusing 2 things. The technical and developmental side, where code is a liability that needs to be maintained, and the business/usage side, where code is definitely an asset that provides your company with additional leverage against competitors.
If one day you want to move off Salesforce to another service, you will just switch off the configuration in AppFlow for the new service. Sure you're locked in AWS, but it takes tech debt away from other things, plus might save you migration costs.
That assumes that the AppFlow code is not buggy. In my experience these services are very hit and miss. This might be a good one, but it's impossible to tell until you use it (or read experience reports of others using it). Reliable 3rd party services can be a big time saver, but Unreliable/Buggy/Limited 3rd party services can easily take 5x more time than something in-house.
* About 70-80% of what you want to do with a service like appflow to integrate with a service like salesforce will be possible. The other 20-30% of your requirements will require building a bugging in house integration from the ground up. Might as well start off that way.
* As soon as you hit a wall with a service like appflow that is usually it. You'll raise a ticket and be stuck until they get around to implementing it. There are fewer roadblocks with home grown implementations of integrations.
It's also A) frequently not all that hard to avoid B) worth doing for reasons other than sheer cost (e.g. flexibility, ability to unblock oneself more easily, ability do deal with bugs by oneself).
If you work in a company that isn't especially worried about hosting costs it's fine (mine isn't, for instance), but most companies are at least somewhat concerned with these costs.
Multi-cloud is complicated and not cheap.
Vendor lock in is essentially that it’s more effort than you’re able to afford, in terms of time and cost.
There's always a tradeoff, but being all in on a vendor isn't necessarily a bad thing. Embracing a platform and the services they have to offer is how you get the most out it.
Whenever you pick a technology or service, you need to employ an ongoing effort rather than waiting until it's too late to do a one-time effort.
This is true with any choice of technology, whether your rolling your own or using SaSS, an on-going effort is required to avoid being locked in.
My clients are all expending far too much energy trying to be cloud vendor neutral with the engineering capacity of your average non-tech large mid-market company. It's killing productivity. They went from VMWare in the data center and open source DevOps tooling to multi-cloud vendor-agnostic container-orchestration all in the name of "cloud but not with vendor-lock in". Meanwhile they could be actually achieving business objectives with these "seductive" managed services.
Here's one simple example, one client is spending about $250,000/yr on what could be accomplished with AWS Cognito for $250/month. But "no", they say, "then we'd be locked in to AWS".
I just can't.
- keep the business logic away from your implementation details
- generally speaking practice clean code
- don't overthink it, if your business goal is solved easily and quickly by using the cloud, use it, otherwise you lose time to market
The reply?
Why? We just want to pick one and stick with.
Customers want the vendor lockin. They even embrace it.
A huge problem however for smaller companies that have little power if the vendor raises prices, discontinues products or throws them off the platform. Going all in with AWS as a small company is not only expensive but can be a risky bet.
You can choose to work with a single vendor but switching to a new one should be trivial in case the prices get jacked. It’s that simple.