I’ve noticed a large difference in opinion from Eurocentric architecture to America-centric. The U.S. seems to favor ivory tower, RDBMS centric systems and Europe is headlong into domain-driven design, event storming, serverless, and event driven architectures.
Monolithic design is fine for simple systems, but as complexity and scale increase, so do the associated costs.
I’m currently using DDD, micro services, and public cloud because complex system are better served.
Hmmmmm, what makes you say "domain-driven design, event storming, serverless, and event driven architectures" is less "ivory tower"?
"ivory tower" to me means academic, theoretical, "interesting", "pure", vs on the other end of pragmatic, practical, get-it-done, whatever-works, maybe messy. (either end of the spectrum has plusses and minuses).
"DDD, event storming, event driven architectures" don't sound... not "ivory tower" to me. :) Then again, I am a U.S. developer!
I think many think an rdbms-centric design is just "basic architecture", and all that "event sourced" stuff is over-engineered buzzword complexity.
It might very well be _useful_, it may be something many more people oughta be doing if only they knew how valuable it was. Could be! But it certainly does not seem basic or simple to me. It seems, well, "ivory tower". And something with a learning curve. Not "basic" at all. (And certainly neither do microservices).
Do y'all in Europe learn "domain-driven design, event storming, serverless, and event driven architectures" in school or something? (I don't even totally know what all those things mean, enough to explain it to someone else).
OK! Agreed on product vs process. I still don't think "ivory tower" means the same thing to you as it does to me, so be it!
When I look up "ivory tower" on google, google's supplied dictionary definition is "a state of privileged seclusion or separation from the facts and practicalities of the real world." I don't think that's how you're using it though? Which confused me. But ok!
I mean, if you can engineer a simple system you're better off than making a complex system. I think as many mentioned the main advantage of microservices is that it (a) forces people to have boundaries (b) conceptually easier to scale (because the "bespoke" part of the architecture needs to only do simple things).
Monolithic design is fine for simple systems, but as complexity and scale increase, so do the associated costs.
I’m currently using DDD, micro services, and public cloud because complex system are better served.