3 ms·
which is the main step on the pathway to hell At the point where you have to write an API call instead of simply joining to a table, you have introduced orders
by zmmmmm 3y ago
which is the main step on the pathway to hell
At the point where you have to write an API call instead of simply joining to a table, you have introduced orders of magnitude more complexity, failure points, testing challenges, race conditions, coherency issues, code duplication etc into your system.
I don't mind stateless microservices too much. This forms more of a hub and spoke model (many services talking to 1 database). But the minute you bring separate state into the equation it's a chaos factory.
- corethree 3y agoNah but there are real instances where you have to use a different database for performance profiles. The biggest one in web is regular entity databases vs. timeseries databases designed for analytics. For this case entity data is just synced to to time series database every so often. Not super chaotic. It does make sense to divide services along those lines. Though I would argue a folder still works for the web app part.
- hot_gril 3y agoJoining a table is nice until that table is owned by a separate team. Becomes either gridlock or constant breakage, performance can get precarious, and testing involves populating a whole fake DB vs just mocking a few RPCs. I really like relational DBs. I'll make a system rely heavily on complex joins. But I'd rather call some other team's API than share DBs with them.