4 ms·
But "trying to decouple, modularize, and choose the right tools for the job" for your applications seems applicable at any scale. EDA requires a change in test
by nostrebored 7y ago
But "trying to decouple, modularize, and choose the right tools for the job" for your applications seems applicable at any scale.
EDA requires a change in testing methodology, in software design, and a bit of reading, but calling it a "google-scale thing" is pretty fallacious. The idea that a monolith is easier to maintain or that synchronous inter-component communication is easier to reason about also seems fallacious.
I'd love to see a chart of developer's perceptions of event driven microservices and their personal operational expectations.
- AndrewKemendo 7y agoAlso worth noting that it is a new and different paradigm than most people are used to.
- mst 7y agoMy point was meant to be more general, in that people try to implement the "google-scale" version of any given conceptual model even when they don't need to (i.e. this is about "choosing the right tools") For example, one can do a CQRS style database setup just fine with a single API server, a single worker process system, and a single postgresql db - and given all changes are already driven by command objects, building out other datastores later if you need to tends to work out well. Though I would also point out that on average, communication within a process is easier to reason about than communication outside because there are fewer failure modes, and sync is easier to reason about than async because there are fewer failure modes. Admittedly, a monolith does make overly tight coupling between components easier to not notice as you're doing it ... but then again it's depressingly easy to accidentally end up with what's essentially a distributed monolith even with a theoretically-microservice-based design (googling "distributed monolith" will provide a bunch of articles with disagreeing definitions of the term ;)