I didn’t see this coming and I think it’s funny, so I decided to post it here.
I feel like this name addresses the problem of services claiming to be microservices when they’re not.
Does that even happen? cat is micro, sed is micro, systemd isn’t and doesn’t claim to be
Poe’s law strikes again!
I can’t agree more!
we’ve been using nano-services for the past 6 months or so. Two different reasons. A codebase we absorbed when a different team was dissolved had a bunch of them, all part of AWS AppSync functions. I hate it. It’s incredibly hard to parse and understand what is going on because every single thing is a single function and they all call each other in different ways. Very confusing.
But the second way we implemented ourselves and it’s going very well. We started using AWS Step Functions and it allows building very decoupled systems by piecing together much larger pieces. It’s honestly a joy to use and incredibly easy to debug. Hardest part is testing, but once it’s working it seems very stable. But sometimes you need to do something to transform data to piece together these larger systems. That’s where ‘nano-services’ come in. Essentially they’re just small ruby, python, js lambdas that are stuck into the middle of a step function flow in order to do more complex data transformation to pass it to the next node in the flow. When I say small I mean one of the functions we have is just this
def handler(event:, context:) if event['errorType'] clazz = Object.const_set event['errorType'], Class.new(StandardError) raise clazz.new.exception, event['errorMessage'] end event end
to map a service that doesn’t fail with a 4xx http code to one that does fail with a 4xx http code.
You could argue this is a complete waste of resources, but it allows us to keep using that other service without any modifications. All the other services that depend on that service that maps its own error types can keep working the way they want. And if we ever do update that service and all its dependencies, now ‘fixing’ the workflow is literally as simple as just deleting the node and the ‘nano-service’ to go along with it.
I should note that the article is about the first thing I discussed, the terrible codebase. Please don’t use nano-services like that, it’s literally one of the worst codebases I’ve ever touched and no joke, it’s less than 2 years old.
This looks like hell.
I’m a C/C++ developer though.
You can write your glue nano-service in c/c++ if you want, it’s just that: glue. It doesn’t matter as long as you don’t need to change the original services which also can be written in whatever you want. Ruby, Python, JS just work out of the box with aws lambda and you don’t really have to maintain them or any sort of build infra so it allows for very little maintenance or upkeep cost. You don’t really test these glue lambdas either.
Things won’t be simpler just because you cut everything up in tiny tiny pieces (I mean it will be easier because it solves some surface level problem right now, pushing the real problem down the road), it creates a complexity of its own.
You didn’t read what I wrote at all.
It’s easy to say I didn’t read your message, which I obviously did (why write lies like that?), just because you don’t understand my point.
Because I clearly said that you don’t cut up things into tiny pieces. It was both in the first paragraph in my post and the last one. I said you use tiny functions to glue together larger systems. So yeah you clearly didn’t read what I wrote.
Micro services is already cutting stuff up in small pieces lol.
The opposite us monolithic software.
I’m a C/C++ developer though.
Ya feel good about yourself, slugger? /s
Yeah, I kind of am. Just found a 33% time job so that I can gradually leave software engineering 😁
Sounds like a distributed monad
Infinitesimal service. It’s effectively no service but it pays better.
Soooooo… Linux with extra steps.
brb deploying each bin from coreutils as a separate aws lambda function
Found the OpenAI employee 🤣
I work in government IT, and AWS is used there too. I prefer working with a team delivering a COBOL data cruncher service, though the build people have it easier when the job is just connecting a source to a sink in AWS
We already have nanoservices, they’re called functions. If you want a function run on another box, that’s called RPC.
gotta keep wirth’s law going strong
Announcing FemtoServices™ - One Packet at a Time!
In an era of bloated bandwidth and endless data streams, today we proudly unveil a groundbreaking approach to networking: FemtoServices™ – Connectivity, one Ethernet packet at a time!
(Not to be confused with our premium product, ParticleServices, which just shoot neutrinos around one by one.)
What’s next? Femtofunctions
You only need two of them, one for
1
and one for0
I was going to write that every function should be a service as sarcasm, then I realized that’s exactly what this article is proposing. Now I’m not even sure how to make a more ridiculous proposal than this.
IaaS Instructions as a Service
Want to know if a value is odd? Boy have we got the API for you!
Boy have we got the API for you!
It’s probably AI-supported slop.
Yeah, I had been willing to give the author the benefit of the doubt that this was all part of a big joke, until I saw that the rest of their blog postings are also just like this one.
Ah, you’re right
no services, fuck you
This “article” was written by AI, wasn’t it? This is just throwing vague buzzwords around
I dunno people were doing that long before AI
You only what they say: micro services, macro outages.
At least you can accurately point the finger at who’s responsible
Well during the never sev0 I’m sure the shareholders will be satisfied with that.
Planck services
My services are so small that it is impossible to know just how fast they are running!
I am now offering Planck services for sale, at US$0.0001 per bit.
For an extra fee, you can even choose the value of the bit.
Nano services are microservices after your company realizes monoliths are much easier to maintain and relabels their monoliths as microservices.
Unironically. I’d put a significant wager down on that being the source of this term.
That’s exactly what happens at my job.