4 ms·
I understand the need for such a thing, but the wild amount of indirection that is needed in microservices world is astounding. Hmm, that request didn’t make i
by timeagain 3y ago
I understand the need for such a thing, but the wild amount of indirection that is needed in microservices world is astounding.
Hmm, that request didn’t make it through! I wonder if it was dropped by the database, the business logic, the spring http-handling framework, the retry annotation, nginx reverse proxy, the authentication sidecar, the “ambassador service”, the SQS queue, the internal VPN, or cloudflare?
Just writing it out makes my brain hurt.
- MPSimmons 3y agoInfrastructure like this is overkill for the vast majority of cases. When you do need something like this, you're probably using a service mesh that also provides introspection and observability into the pipeline to be able to help debug and diagnose issues.
- AYBABTME 3y agoThis type of infra only makes sense when you have Scaling People Problems to solve using technical solutions. Say you're MSFT and you need to let thousands of people of various skillset and skill levels, ship locally useful software at decent velocity, but while preserving important cross-cutting stuff like TLS, telemetry, wtv. Or when dealing with legacy software. But otherwise it's not required.
- tjoff 3y agoThe weird part is the hype around it, because that extends well beyond that particular scenario. Or maybe scale doesn't matter. Even if you replace thousands with tens you still often have a huge variety in skillset and focus.
- AYBABTME 3y agoThe hype is career development driven development.
- H8crilA 3y agoRule of thumb: if you cannot staff a team (even a small one) for a service - it cannot be a standalone service. This rule is sometimes a bit too aggressive, but only a bit - for example it doesn't apply to an off-the-shelf database.
- iamthepieman 3y agoDid you get this rule of thumb somewhere or make it up? If the latter, can you please share a source?
- H8crilA 3y agoI made it up myself, and I think it's a good rule.
- iamthepieman 3y agoI agree that it's a good rule. Of course the people responsible for staffing aren't usually the people building services.
- notatoad 3y agoi don't think you can really say this is ever necessary. or at least, not that microservices make it necessary. this is a business thing. you need this when you're hiring a contractor to add some functionality, and you don't want them to touch the service behind the ambassador. probably because you've hired a different contractor to build the original service, nobody at your company knows how it works anymore, and making the new contractor figure it out is out of budget.
- ctvo 3y ago> I understand the need for such a thing, but the wild amount of indirection that is needed in microservices world is astounding. What does this have to do with microservices? I'm trying to debug my monolithic service: Was it the database? My own business logic? The HTTP framework? The reverse proxy we run to terminate TLS? Was it an authentication or authorization issue? The network appliance in front of all of this? Did the queue fail to persist it at a layer above this? Was it the hosting provider? You outlined any distributed service.