| ▲ | kukkeliskuu 3 hours ago | ||||||||||||||||||||||||||||||||||
The biggest beef I have with microservice architectures is lack of transactions across service boundaries. We say that such systems-of-systems are "eventually consistent", but they are actually never guaranteed to be in a consistent state -- i.e. they are always inconsistent. That pushes the responsibility for consistency to the system that needs to use the data -- making implementing those either extremely complex -- or more typically -- ignore the problem and introduce distributed timing bugs that are difficult to find in testing. The benefits of microservices are offset by losing the ability to build on database functionality to make your systems robust. | |||||||||||||||||||||||||||||||||||
| ▲ | zmmmmm 33 minutes ago | parent | next [-] | ||||||||||||||||||||||||||||||||||
It definitely seems like the value of losing of transactional integrity is massively under appreciated. I think there has been a progression of thinking over the last couple of decades that went from laying everything at the god of transactional integrity, to "planet scale" services proving that such designs cannot scale and hence promulgating distributed solutions, to everyone else cargo culting the idea that transactions never mattered in the first place and now even a simple app that never needed to scale in the first place is being carved up into 5 microservices and half the design complexity is dealing with regaining the lost transactional integrity that we had in the first place. | |||||||||||||||||||||||||||||||||||
| ▲ | SOLAR_FIELDS 3 hours ago | parent | prev [-] | ||||||||||||||||||||||||||||||||||
The biggest beef I currently have with microservice architectures is that they are more annoying to work with when working with LLM's. Ultimately that is probably the biggest limiting factor for microservices in 2026, the tooling for multi repo setups is there (i've been using RepoPrompt for this with really good effect), but fundamentally LLM's in their default state without a purpose designed too like this suck at microservices compared to a monorepo. You could also turn around and say that it's a good context boundary for the LLM, which is true, but then you're back at the same problem microservices have always had: they push the integration work onto another team so that developers can make it Not Their Problem. Which is, honestly, just a restatement of the exact thing you just said framed in a different way. I think your statement can also be used against event driven architecture - having this massive event bus that controls all the levers of your distributed system always sounds great in theory, but in practice you end up with almost the exact same problem as what you just described, because the tooling for offering those integration guarantees is just not nearly as robust as a centralized database. | |||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||