5 ms·
Microservices always struck me as a reinvention of service oriented architecture from the 90s and early 2000s. This was done using RPC protocols like Java RMI o
by api 10y ago
Microservices always struck me as a reinvention of service oriented architecture from the 90s and early 2000s. This was done using RPC protocols like Java RMI or CORBA, while microservices are normally done with http(s) or event/pubsub systems.
Basically you're re-inventing linking and weak/lazy binding across a system or container boundary. That's it. This is not a new idea. It has some advantages in areas like scaling and modularity, but it also has disadvantages of increased latency, complexity, and all the weird edge case failure modes introduced by the fact that the network is not reliable.
One of the fun things about being developer-old (over 25) is seeing the same things get reinvented over and over and over again by every new generation of developers.
- UK-AL 10y agoYou'll find most Microservices experts will say microservices is a specific implementation of SOA. A lot of the early SOA architectures used huge middleware applications. Modern microservices keeps the stuff inside the microservices themselves.
- tyingq 10y agoInteresting, as the author claims SOA expertise "including turning several legacy applications into a modern service-based architecture" https://www.linkedin.com/in/smattkelly https://www.linkedin.com/in/smattkelly
- justinhj 10y agoI'm around the developer age you call old and I actively work with microservices. I agree with your comment but I don't think there's anything wrong with reinvention as long as the new techniques, libraries and frameworks are actually advancing the idea and not relearning by making the mistakes of the past. There's no reason why we can't make up new words for evolved or subsets of technologies if that gives the industry a common vocabulary to use.
- jsudhams 10y agoAgree, I think unlike past now micro service (Or unit/piece of software or service) can be packaged, deployed and scaled well in loosely coupled manner and combine that with Agile and DevOps then you got great shop to deliver features without having to worry about other.
- deleted 10y ago[deleted]
- user5994461 10y agoIt's not even "re-invented". There isn't anything changed between service oriented architecture and micro-services. Well, except the A in SOA indicated that it's something that's thought of in the design phase. Maybe we should say micro services architecture to make it clearer.
- jamestenglish 10y agoI am an older dev that did a lot of "SOA" work back in the 2000's and I disagree that microservices are a "reinvention". In my opinion they are a further refinement of those SOA ideas (which is a good thing to keep moving forward as an industry). A lot of the SOA work I did was putting REST/SOAP interfaces on various monolithic APIs. This was generally a good step forward and decoupled things (especially the front-end) but it was far from perfect. You still had the monolith and a lot of the code-smell that gets built into a monolith of spaghetti dependencies making it hard to write new features and move forward. Now the argument is always "well if you and your team were just better coders and more disciplined that wouldn't happen" but in the real world it is shown to be incredibly difficult to actually have a team that is that disciplined and microservices give a real hard barrier to enforce that discipline. I very rarely see things that are truly reinvented, and I think that is some serious ego bias essentially saying: back in my day we did it right and you dummies are just figuring it out. Instead I see every new generation of developers refining good ideas over and over again which improves our industry and products.
- lmm 10y ago> Now the argument is always "well if you and your team were just better coders and more disciplined that wouldn't happen" but in the real world it is shown to be incredibly difficult to actually have a team that is that disciplined and microservices give a real hard barrier to enforce that discipline. I agree that you need enforcement. But by having a multi-module project in a good build system you can enforce decoupling at build time, without the overhead of a network bourdary.
- jamestenglish 10y agoVery true, but decoupling is only 1 of the benefits of microservice. Polygot environments, scalability, etc also come with microservices vs modules. As with everything its about the right tool for the job and a lot of organizations are more than happy to trade network overhead for the other bullet points microservices offer.
- 10y ago
- dragonwriter 10y ago> Microservices always struck me as a reinvention of service oriented architecture from the 90s and early 2000s. This was done using RPC protocols like Java RMI or CORBA It's not really a reinvention, it's just a continuation of SOA as an architectural style. The new name mostly, I think, is to get away from the attachment to particular technologies which became associated with SOA in the general consciousness. I've always thought the connection was obvious and intentional.