Is it ok to use proprietary database features
I was recently thinking of SQL Server temporal tables and how there is a perspective that you shouldn’t use proprietary features of a product because it locks you into that product. I want to be your guide on this matter.
Database platforms are typically long term decisions
First of all, that product was chosen for a reason so it’s unlikely that any time soon it’s going to be replaced. This is especially true if we’re talking about database platforms. Doing that type of wholesale swap out is expensive because you’re paying you’re employees to do the long, tedious work to do that platform switch.
Lowest Common Denominator Effect
Second, by not using platform specific features, you’re actually “locking yourself in” in a different way. You’re locking yourself into the lowest common denominator for features, “just in case” your company decides to switch platforms. Your company spent $16,000 dollars per core for Enterprise SQL Server. Refusing to use all of it’s capabilities is actually a HUGE waste of money. Would you buy a Ferrari to drive in a race and limit yourself to the horsepower of a Chevy Pinto?! No way! Why would you do that?
Similarity of features across platforms
Third, many platforms have similar features. This means that implementing “x” in SQL Server could be done in another platform by doing “y”. In at least some cases then, you’re not locking yourself into a platform by using a specific feature.
For example, here is a page talking about an extension for PostgreSQL that allows you to use temporal tables, and it’s implemented VERY similarly to the feature in SQL Server.
Paying developers to build an alternative
Fourth, what are you going to do to give yourself that needed feature that you’re not going to use from your existing platform? Are you going to pay good money for your team to develop something from scratch that likely won’t be battled tested like the platform’s version of the feature? this is like rolling your own monitoring when you could instead by any number of tried and true platforms instead.
So, yes! It’s perfectly fine to fully utilize the benefits of the platform you’re on and spent money on. This is especially true when you have parity in a feature set across platforms.
If you’re interested, join the conversation about this topic over on LinkedIn.
[…] Lee Markum does some thinking: […]