DEV Community

Discussion on: What’s overrated?

Collapse
 
yaser profile image
Yaser Al-Najjar

React

Micro-services

Apple products

Collapse
 
gayanhewa profile image
Gayan Hewa

So true though. Most attempts for Microservices with no real value addition ends up with distributed monolith when the attempt goes ill planned. Especially small teams, attempting the route for the hype.

Collapse
 
droidmakk profile image
Afroze Kabeer Khan. M

The real value of micro services is at scale.

Thread Thread
 
stefandorresteijn profile image
Stefan Dorresteijn

And the real danger of micro services is deploying them before it's necessary

Thread Thread
 
gayanhewa profile image
Gayan Hewa

Yes true.

Collapse
 
cheetah100 profile image
Peter Harrison

Microservices, with my last breath I spit at thee.

The basic architectural principle behind them is similar to Unix apps, where you have small applications each with a narrow scope. You use plumbing to pull them together into complete systems. The idea is to break things into independent subsystems that are weakly coupled. In theory.

In theory if you observe the idea of having a narrow and specific scope while decoupling from the domain they have application. Certainly the play a big part in distributed systems.

Where they come undone is when they are tied tightly to the domain, sharing the data model. If this happens they either end up sharing the persistence mechanism, aka the database, and thus having a central point of failure, or having integration and query nightmares when you try to pull data together from multiple Microservices into a single coherent view.

As with many other areas they are adopted and implemented as some kind of silver bullet, but without a skeptical analytical approach to their implementation can turn into the classic Big Ball of Mud, where Microservice is piled on top of Microservice with little or no concern about clear architectural separation of concerns.

In my experience they become tightly coupled to narrow use cases and lead to an unmanageable explosion of code and nightmare of latency. Perhaps some companies have the engineering discipline to implement them right, but too often this isn't the case.

Collapse
 
siy profile image
Sergiy Yevtushenko

I may add that use of microservices makes deployment and maintenance much more complicated than it needs to be. And makes local deployment for testing/debugging at least very inconvenient (usually just impractical, often even impossible).
Possibly I know better solution than microservices, I've described it in my blog here, at dev.to recently.

Thread Thread
 
cheetah100 profile image
Peter Harrison

I read your article. Looks good, if only because I have adopted something very similar. With Gravity there is dynamic runtime configuration which can create new data structures and related API. Business rules, views, filters and integrations are all defined at runtime through the API. It is a clustered system so that all the services run on each node, so regardless of the API called it is capable of servicing it without doing another hop. It uses JMS queues to manage workload across the cluster. Because each node of the cluster is identical you will never get resource bound on a specific service because any node can do anything. There are three clusters involved, the API, JMS and Persistence.

Collapse
 
kp profile image
KP

Curious why React? Are you saying Vue or Angular are better? FWIW I don't use React myself.

Collapse
 
nektro profile image
Meghan (she/her)

What's underrated is using none of them.

Thread Thread
 
andy_preston profile image
Andy Preston

This.

It's easy for a beginner to assume that every company out there is using a front-end framework.

I'm still seeing lots of both greenfield and brownfield projects using vanilla JavaScript with a .NET, Java or PHP backend.