RDBMS are really the best solution for applications where the decision is to only use one data storage solution for the entire application.
There is no longer any excuse when building anything in the cloud for using RDBMS.
You have so many better options.
Note:
"RDBMS" - Relational Database Management System. Manages tables of data and the relationships between them, and uses SQL (or a variation) to store, retrieve and manage data.
"data store/data storage solution" - an element in the data layer of an application
The point of the above is to clarify that an RDBMS is a perfectly good data store but rarely brilliant.
With cloud, there are data stores - e.g. data services like DynamoDB or S3 - that have different characteristics for an application e.g. speed or storage.
We've been brought up in the tech industry with the idea that an application is basically front end, application, data layer or a variation.
The problem is that the data layer hasn't really evolved for most beyond RDBMS + some other things occasionally.
For me, having spent most of the last few years so far away from RDBMS, I have seen so little need to use RDBMS, that I don't understand when anyone suggests they should be used.
Which, I think, amazes people.
What *is* hilarious is that often, these people, think that I'm saying "get rid of SQL" and "no more relational data".
That's not it at all!
You can use SQL in solutions other than RDBMS.
Relational data can sit in solutions other than RDBMS.
You'd know if you looked.
So when I'm talking about RDBMS being a brilliant solution if you're only going to use one data storage solution for your application, I mean it. There aren't many better ways of doing it. It does most of the things pretty well.
But if you are building applications, in the cloud, and you aren't taking advantage of the data services that exist, the S3, DynamoDB, Athena, etc type services (I know these are AWS specific) then you're missing out.
You get so much efficiency and value using these services.
I do know there is a learning curve with getting to grips with new data layers.
And I know that developers find "new" hard too.
But the thing is, that the success I've had, and seen, is so much greater than that pain.
If you don't want to, then don't.
But if you've never done it, or if you're just going to come at me and tell me I don't know what I'm talking about, then please go away.
RDBMS aren't going anywhere. Developers will be using them for decades. I know that.
I'm just trying to get a few people to look harder.
Stop telling me that <database X> is brilliant at <what cloud service Y> does.
Firstly, it might do something similar (which is great) but...
Secondly, you're proving my point!
If an RDBMS includes an extra data service, it means the tables part of the tech isn't optimal.
Add to that that you're almost certainly adding costs to your solution by having to learn something more proprietary (RDBMS service as opposed to cloud service) and I'm not sure that that's the best idea.
The cloud is not "someone else's server" any more.
It stopped being that a long time ago.
It's now "managed services that your team can't compete with".
That's the issue here.
Data storage has already moved to the cloud. Now it's getting optimised.
And all the "but what about privacy/security/data sovereignty/portability/lock in?" arguments?
This all got solved a long time ago. You've just decided there's something wrong, and you don't want to do it.
Apart from privacy and security, those conversations are *yawn*.
In a lot of ways, the privacy and security using cloud services are significantly *better* than using an RDBMS, which, believe it or not, have flaws and they are much more widely known.
So... I genuinely don't get why the hate.
Also, why do people come after *me* and say I'm wrong about all this?
It just feels strange.
It's an opinion, and a considered, and detailed one.
Long held too.
If you're sitting in an enterprise being told you have to use an RDBMS, then fine.
That's not my problem.
That person telling you may have good reason.
And they may be right.
I DON'T KNOW YOUR APPLICATION.
Which is the whole point.
You have to use the right data store for the application and context.
Which is the whole point at the start of the thread.
See?
Got it?
• • •
Missing some Tweet in this thread? You can try to
force a refresh
How do you handle it when someone comes to you and says "we're concerned your system design has all Lambda functions outside VPCs and we can't restrict data egress" so they mandate all functions must go in a VPC?
The context here is that Lambda functions are run by the service and have access to the internet.
Lambda function IAM permissions control access to data within your own accounts which is great.
If an attacker finds an exploit, they can egress data via a Lambda to internet.
Climate change affects less wealthy communities far more than it affects wealthy communities.
Unions are about joining a collective so that the individuals in it are not in some way exploited.
Climate change is going to become part of that more and more.
So why not now?
How does it affect less wealthy communities?
Pollution for one. Until we get rid of fossil fuels, pollution still matters, and the associated health effects. You don't see rich people living near oil refineries or distribution depots.
There is ** no way ** that any due diligence would have told any investor that an investment in a solar farm project at scale would yield an investment beyond a few percent.
The reason is that subsidies had significantly changed.
There were some opportunities but not many.
To take advantage you would need a lot of money.
Which, to be fair, is what the story says.
But even then those opportunities would have yielded only limited returns.
And a lot of due diligence.
And when you do due diligence on solar farms, it can get quite involved.
At what point should a company director/investor be sanctioned or liable in some way?
This is not a political question (certainly not party political) but a hypothetical/ethical question.
Should a director/investor be able to extract any wealth without liability?
I say this as someone who has a limited company with a turnover which is sometimes over 6 figures annually, but often not.
I am thinking more about PE/VC level here.
Invest others money/your own and "business model" is irrelevant so long as wealth is generated.
Good or bad?
There are big tax advantages to investing in new companies.
But the issue is that if those new companies are essentially "wealth extraction vehicles" and do not have some form of solid foundation on which to survive then it becomes problematic.