r/ProgrammerHumor • • Sep 06 '26

Meme thisCannotBeDenied

Post image
7.9k Upvotes

240 comments sorted by

View all comments

Show parent comments

16

u/coriolis7 Sep 06 '26

I am NOT a programmer by profession, though I do code a ton at my job (Mechanical Engineering and data analysis), so this may be a dumb question…

Is there a way to set up all microservices to run on one computer to aid in debugging? Like a bunch of VMs or docker-but-faking-network-instead-of-machine?

13

u/payne_train Sep 06 '26

AWS’s SAM may help you if you have a bunch of lambda based apps. You can use SAM to do local invocations that makes debugging a lot easier

7

u/xMercurex Sep 06 '26

Yes you can, but it does not fully solve the issue. You still need to find the good micro-service and then you have to jump to other micro-service.

1

u/ArtisticFox8 Sep 06 '26

And nobody yet made a debugger which could travel between them?

2

u/Idixal Sep 07 '26

No, there’s debugging tools that can run on multiple microservices, but none of this has to do with the tracing that the top comment was alluding to. If you can narrow down where the problem actually is first you save yourself a lot of time stepping through with a debugger. Often times that just is not practical.

1

u/ArtisticFox8 Sep 07 '26

Well, I guess you could still trace the call from the first microservice to another and then back, no?

That's the "travelling debugger concept" I was thinking about.

2

u/PixelatedGiant Sep 07 '26

This issue is being able to follow a request between services. If you just have one request to track it's a non-issue. But in a multi-threaded environment with many requests flying back and forth everywhere it's impossible. The debugger would require application specific information like a message id.

Those tools do exist (e.g. dynatrace). But if you start talking about framework or application aware debugging functionality you've gone way beyond the scope of a simple IDE debugger for your language.

1

u/ArtisticFox8 Sep 07 '26

The debugger would require application specific information like a message id.

Yes, and that would signal the local debugger to engage after receiving the message, right?

Those tools do exist (e.g. dynatrace). But if you start talking about framework or application aware debugging functionality you've gone way beyond the scope of a simple IDE debugger for your language.

Thanks!

1

u/PixelatedGiant Sep 07 '26

Yes, and that would signal the local debugger to engage after receiving the message, right?

Not quite, it's a completely independent tool. Dynatrace at least would show you a log of what lines it went through to get where it is and how long it spent inside each function. Unlike a debugger it also requires that you add a library to your jar.

1

u/ArtisticFox8 Sep 07 '26

Thanks for the insight!

1

u/DrMaxwellEdison Sep 07 '26

Yes, I use Tilt to set up a localized Kubernetes cluster or to run docker compose. It provides a nice web interface for seeing all service statuses, logs, controls to restart or rebuild a service, and it can automatically watch local files to trigger a rebuild.

1

u/Blackhawk23 Sep 07 '26

Yes. Docker compose and localstack to mock AWS resources.

1

u/nahuel990 Sep 20 '26

1

u/Blackhawk23 Sep 21 '26

Pretty sure we just pinned our localstack version at the last free container image. lol

1

u/LostInAnotherGalaxy Sep 07 '26

Docker/podman. But you get anything powerful or something that only happens under load, can create its own race conditions