3 ms·
In many real-world distributed systems, you actually trade off data consistency for scalability or the ability to independently change components among engineer
by joeblubaugh 7y ago
In many real-world distributed systems, you actually trade off data consistency for scalability or the ability to independently change components among engineering teams.
I would argue that if you need strong consistency in very large datasets, distributed designs should more often be "sharded" designs where strong consistency is maintained in data shards and not necessarily between data shards.
- js8 7y agoI think I don't have a problem with inconsistent shards. My point is, I think, more about the consistency of the data schema rather than the actual data. (You could also say that inconsistency is bearable as long as you can describe it.) It's similar to a debate in OOP vs. FP about encapsulation. In OOP, data (schemas really) are hidden from other objects (services). In FP, data are "naked" and visible to everyone. So the FP approach forces you to deal with the changes to the schema (which are often a consequence of resolving inconsistencies) on global level. OOP doesn't and it is eventually going to bite you.