The Reactive Manifesto
reactivemanifesto.org
reactivemanifesto.org
I'm so weary of this kind of language. Literally everybody trying to sell you an architecture - good or bad - would probably describe it as "more flexible, loosely-coupled and scalable". Not to mention the open question: relative to what? Average? Every other possible approach? The approach currently seen as dominant?
I just wish people would skip the pageantry and go straight to the benefits/tradeoffs. If you elide or deny the existence of tradeoffs, that's only going to deepen my skepticism even further.
"loosely coupled" is a tradeoff; when I hear about an architecture being "loosely coupled", I assume that it allows substituting different components easily, but I also assume that it may be harder to evolve that interface and make use of the full capabilities on both sides. Sometimes I want that (if I'm looking to replace one of those components), but sometimes I want something more tightly integrated.
Similarly, "flexible" is a tradeoff; some frameworks describe themselves as "opinionated" rather than "flexible".
What's really funny is that the latest fad for those running microservices is to go to monorepos, to make sure that all their APIs are synchronized, which is effectively tightly-coupling them again.
They just weren't feasible before modern tooling - and without it, their drawbacks significantly outweighed their benefits.
It's like calling electric-assisted bikes a fad. No, people always wanted motorized bicycles, but prior to advancements in battery technology supplanting ICEs, they were heavy, loud, noisy, and smelly. Nowadays, they are just heavy. Does this make them harder to use in certain contexts? Yes. Climbing stairs with one sucks. Does electric-assist make them a better vehicle for getting from point A to point B in any city with hills? Absolutely.
Probably better to ignore and base yourself on more credible sources.
[0] https://news.ycombinator.com/from?site=reactivemanifesto.org
* writes resilient code that is simple
* embeds microservices in monolith to get the best of both worlds
* writes only distributed code with transactional consistency at optimal performance without deadlocks
* all systems are consistent, available and tolerate network partitions
* distributed messaging has one-and-only-one delivery semantics always guaranteed
* applies same architecture and principles on full spectrum of problems - from writing kernel code to website for local tennis club
* webscale
Applying those and only those principles will not limit you. It will free you from worry and improve your family life.
Any seemingly contradictory statements are a sign that you don't yet get it. You simply have to accept them as axiomatic truths and you'll experience enlightement that awaits. Trust me. I have a website so it must be true.
Is this true? There are surely more companies than before, but is most of the programming done for applications like this? I always thought that at any point in time, the vast majority (~70%) of developers are working on internal applications with users ranging from a few to a few thousands. Is there any hard data on this?
(Or maybe I misunderstood what you were asking for.)
> Only a few years ago a large application had tens of servers, seconds of response time, hours of offline maintenance and gigabytes of data.
isn't quite true for 2021