4 ms·
I’ve seen multiple dev shops migrate from monolith to “microservices” without changing their data store, and the sad state that results is basically what this a
by twodave 5y ago
I’ve seen multiple dev shops migrate from monolith to “microservices” without changing their data store, and the sad state that results is basically what this article is presenting as a positive. It’s anything but. It is incredibly difficult to reason about an application ecosystem using a shared data store. You’re basically just pushing all the complexity mentioned about microservices in the article into the database itself, except with fewer barriers. Any schema change now has to be verified against multiple (often an unknown number of) owners. Versioning is a much less fun problem in an RDBMS than in an HTTP application. Blurry data boundaries eventually cause enough confusion and poor decisions that you may as well be back to running a monolith since you end up having to scale all your pieces together anyway.
- ratww 5y agoI've also seen it happen more than often than I wish, but the issue in this case is more about skipping a common data access layer rather than usage of a shared data store. This would have been a problem in any system: even in a monolithic application, such lack of proper layer (and proper checks and verifications around data access) will always cause these issues.
- zmmmmm 5y agoI'm not sure if it's the answer but you may be slightly misunderstanding it - you are describing a system without the crucial "Data Access Layer" which sits in front of the database. This layer is what mitigates part of the problem you are describing because it puts a layer of abstraction b/w raw data access and the services using the data. For example it could be a REST API, or using a message queuing backbone or both.
- hyperpallium2 5y agoMaintaining access for old programs despite evolved schema by was Codd's motivation for relational algebra.