3 ms·
> I'm also curious how much of this extra complication comes from having a central database that tries to be a source of truth for everything? You can reverse
by mamcx 2y ago
> I'm also curious how much of this extra complication comes from having a central database that tries to be a source of truth for everything?
You can reverse this as 'how much extra complication comes from having many disparate databases, so now you push all ACID complications at the company level instead of the software(rdbms)'
It is a tricky problem!
Having a single source of truth is a tremendous simplification, especially for the people.
It should be ideal that the other databases are pure materializations on top of it, but then not matter what you have the need to input more stuff that is not part of the central one, and now you have both problems.
- taeric 2y agoA single source of truth for facts is fine. A single source of truth that has to be reflected by external reality? Less fine. At that point, you pretty much have to have reconciliation processes to account for when they don't match. Oddly, I'd argue that the better way to view this is that the central database is the materialization of the data sources scattered around where work actually happens. As such, you have to have constructs that account for provenance and timing introduced there that aren't as necessary at the edges.
- nyrikki 2y agoSingle source of truth is different in distributed systems, well the costs are different. Using the language of 'software architecture: thee hard parts' this forces your entire system into a single 'architectural quanta', basically it is a monolith. There are situations where monoliths are acceptable or even the least worst option. The 'Fallacies of distributed computing' covers most of these. It can work better if you use a hierarchical model, but OLTP is almost exclusively the relational model. ACID transactions become pretty brittle, software becomes set in stone etc... There are use cases, but the value proposition is typically much weaker