3 ms·
> When databases were shared by many apps, it made sense to think of them as their own services. When each database is built and run to service exactly one app,
by potamic 4y ago
> When databases were shared by many apps, it made sense to think of them as their own services. When each database is built and run to service exactly one app, that makes less sense, plus it's also easier to push everything onto the devs (as above).
I think this is a really good point. The move towards microservices architectures means smaller and smaller databases. But more importantly, the data is distributed, so a lot of query complexity moves to services and the data is effectively modelled in a nosql style.
I wonder if newsql databases will bring back the database-as-service paradigm. At some point the costs of running hundreds of tiny databases is going to catch up to companies and the prospect of having a single critical instance to care and worry about is going to look attractive. Maybe we will see the return of the DBA in a new avatar over here.
- _jhqp 4y ago> data is effectively modelled in a nosql style. What do you mean by this? Any references I could read?
- DeathArrow 4y agoI think he means the data is not relational anymore and it is not normalized.
- tremon 4y agoProbably means that the data isn't modelled at all, just a dump of the application architecture.
- potamic 4y agoYou can probably search around for references on distributed data management. But basically, when your data is split across different instances, you can no longer do joins or transactions or rely on the database for acid guarantees. All these things must instead be handled in code which is exactly how you would work with data using a nosql database as well.
- ceras 4y agoThis might help: https://microservices.io/patterns/data/database-per-service.html https://microservices.io/patterns/data/database-per-service.... Varies by actual DB but: with this architecture, if the DBs are NoSQL then you didn't lose as much by splitting up the databases, but if they were SQL then among other things you lose transactions across those DBs (or now need costly distributed transactions), effectively making the collective SQL system behave more like a NoSQL DB.