5 ms·
Any company that doesn’t have some form of distributed tracing in this day and age is acting with pure negligence IMO. Literally flying blind.
by spyspy 2y ago
Any company that doesn’t have some form of distributed tracing in this day and age is acting with pure negligence IMO. Literally flying blind.
- bboygravity 2y agoDistributed tracing? Is that the same as what Elixir/Erlang call supervision trees?
- williamdclt 2y agoLikely about Opentelemetry
- ahoka 2y agoOh, come on! Just make sure your architecture is sound. If you need to run an expensive data analysis cluster connected to massive streams of collected call information to see that you have loops on your architecture, then you have a bigger issue.
- hylaride 2y agoI don't know if you're being sarcastic, which if you are: heh. But to the point, if you're going to build a distributed system, you need tools to track problems across the distributed system that also works across teams. A poorly performing service could be caused by up/downstream components and doing that without some kind of tracing is hard even if your stack is linear. The same is true for a giant monolithic app, but the sophisticated tools are just different.
- consteval 2y agoSolution: don't build a distributed system. Just have a computer somewhere running .NET or Java or something. If you really want data integrity and safety, just make the data layer distributed. There's very little reason to distribute application code. It's very, very rare that the limiting factor in an application is compute. Typically, it's the data layer, which you can change independently of your application.
- MaKey 2y agoI have yet to personally see an application where distribution of its parts was beneficial. For most applications a boring monolith works totally fine.
- consteval 2y agoI'm sure it exists when the problem itself is distributed. For example, I can imagine something like YouTube would require a complex distributed system. But I think very few problems fit into that archetype. Instead, people build distributed systems for reliability and integrity. But it's overkill, because you bring all the baggage and complexity of distributed computing. This area is incredibly difficult. I view it similar to parallelism. If you can avoid it for your problem, then avoid it. If you really can't, then take a less complex approach. There's no reason to jump to "scale to X threads and every thread is unaware of where it's running" type solutions, because those are complex.