8 ms·
> Any time you lean on code in a random GitHub repository, where you never speak to the author and just use the API you're given, you're doing microservices. S
by quonn 4y ago
> Any time you lean on code in a random GitHub repository, where you never speak to the author and just use the API you're given, you're doing microservices.
So a library is a microservice now?
- JAlexoid 4y agoEverything is a microservice, even Linux kernel modules are... apparently. And also - nothing is a microservice, because it's not separated strongly enough.
- actionfromafar 4y agoZen Enlightenment? I think you put it very well, actually. Software development is so much about culture and understanding.
- randomdata 4y ago> Everything is a microservice, even Linux kernel modules are... apparently. A microservice is comprised of people. Not a whole lot different than a service, but narrower in what is offered such that the service doesn't provide something useful on its own and is meant to be integrated with other services to achieve its full utility, hence the 'micro' moniker. In the world of physical products we often call these people suppliers. It is possible that a microservice may produce Linux kernel modules.
- mwhitfield 4y agoSure, I guess if you completely redefine the word "microservice" to something completely different from the common understanding, it makes more sense. If someone is writing about "microservices," they are generally talking about the situation where those APIs and team boundaries are exclusively (or at least primarily) composed of separate applications communicating over the network. Not what you're talking about.
- randomdata 4y agoWhat's the common understanding? I've honestly never heard of any other definition. The article shares the same definition, at least.
- mwhitfield 4y ago> the situation where those APIs and team boundaries are exclusively (or at least primarily) composed of separate applications communicating over the network
- randomdata 4y agoAre you, perhaps, not familiar with Conway's Law?
- JAlexoid 4y agoConway's law doesn't apply to microservice architecture. Microservice architecture splits the functionality farther, than Conway's law talks about. When a single team owns 4-5 microservices - that's beyond Conway's law.
- randomdata 4y agoIt is people who provide service. If the (micro)service produces 4-5 products as part of the service they provide, that's not beyond Conway's Law at all.
- JAlexoid 4y agoConsidering that you've been engaging in strawman arguments this whole thread, I bow out of this discussion.
- randomdata 4y agoIt is always curious when someone writes that they are bowing out of a discussion, as if they don't realize that no longer replying conveys the exact same information. Was there an additional takeaway here that I missed?
- KyeRussell 4y ago…Yes? So many people have very little respect for the effects of the fact that this field is so ridiculously young, including the fact that all of these definitions are incredibly wishy washy. Being able to take a statement like “an external dependency is a microservice” and not completely discounting the point being made is incredibly valuable.
- eternalban 4y agoNo, sorry, the field is not ridiculously young. The issue is the technical decision making process is now delegated to "ridiculously" inexperienced developers. > an external dependency is a microservice Regret to disagree again. Flip that and you have a leg to stand on at least: A microservice is an external dependency. Service defines the architectural semantics of the dependency. Micro scopes the services provided.
- quonn 4y agoIt‘s not that young. Chemistry (once it became a real science) is perhaps 250 years old. Computer science is 50-70 years old.
- randomdata 4y agoThe industry of which we speak is not in the sciences. Maybe engineering. The earliest recognition of software engineering seems to only go back to the 1980s, but there is a lot of debate as to whether it is even that. It's probably closer to gardening. Unfortunately, the industry is too new to have yet fully recognized what it is.
- quonn 4y agoIf software engineering is gardening for you, I think we can stop the discussion right here.
- randomdata 4y agoSoftware engineering is software engineering, but the process of creating software may often be more gardening than engineering. I mean, what is it about haphazardly trying out an approach you read about on a random blog written by someone who has a different problem to solve than you says engineering? In my world engineering implies rigour, adherence to the data, etc. There can be engineering in software. There can be science in software. But I'm not sure that means software work is categorically either engineering or science. I expect you will find that there is a lot of fad chasing and leaps of faith in hopes of stumbling upon something that will yield. To the specific topic of conversation, where do you find the science or engineering, and not just people throwing shit in their plot and seeing what grows?
- eternalban 4y ago> So a library is a microservice now? Get with the program. The world of software consists of one domain ("web apps") and two species: "microservices" and "monoliths". Older, cranky and ultimately useless, software zoologists insist this is all wrong and that there are all sorts of taxonomical layers and creatures yet unseen by the avid readers of blogs. But that's not what the internet says and hey, white hair? "Hmm. That's a red flag right there."
- randomdata 4y agoMicroservices is a collection of independent teams who only communicate using well defined APIs. Those teams may produce libraries, perhaps. That's up to Conway.
- manojlds 4y agoThat API is usually a web API right. Essentially Library + REST/GraphQL/etc is a microservice.
- randomdata 4y agoIn practice, likely. The trouble with only communicating by API is that if you want to change the API you can't just tell those who use it that they'd better be prepared for breakage, so you have to juggle both the legacy API and your new API in your work to maintain compatibility. If you use a linked library, interface compatibility can be a real challenge. Web APIs, as you call them, offer more flexibility in adapting to different callers. It also comes with the added benefit of defining explicitly clear boundaries between teams that something that shares memory doesn't necessarily guarantee (e.g. monkey patching). This oftentimes makes it a good practical choice.
- csomar 4y agoIn some sense it is. It has an interface that your program communicate through. It might be loaded separately in memory (or even shared between several programs). That’s kinda of a local microservice.
- HelloNurse 4y agoAlso from an organizational point of view: it ceases to be maintained, or the developer disappears, as an independent unit.