Remix.run Logo
jbreckmckye an hour ago

Tracing and o11y are a poor sibling to static analysis.

> This is complete lack of experience on the authors part

Actually I'm going to turn the accusation back on yourself: if you think reasoning about a system's entire graph of behaviours from runtime traces is trivial, I don't believe you've worked on a truly complex system

The range of what a program can do is much larger than what a program does do in your two week Datadog aggregation window

reactordev an hour ago | parent | next [-]

It is trivial when properly configured and used. I get why you think I might not have worked on large systems but to the contrary, I've built systems for Fortune 500s. All of them had this baked in and all of them had a place to go when things went wrong. Self-service, observable, documented, and supported by the very folks who wrote it.

jbreckmckye an hour ago | parent [-]

Observability and operability are just not the same thing as being able to reason about the software. You need both

You can't capture the full range of behaviours and edge cases unless you are willing to ingest billions of events without lossiness

Metrics have limitations of cardinality. Logs need to be reduced or else you are in archive rehydration hell

There will be code paths that have never been triggered that you still need to reason about as part of analysing a system, eg in threat modelling

> I get why you think I might not have worked on large systems

I didn't, necessarily. But it looked like an excessively strong claim, combined with a challenge to the author's competence. I wanted to call that out.

mrkeen an hour ago | parent | prev [-]

Missing the point.

Static analysis doesn't go away. Metrics just covers the gap of "is this used by external callers", and nothing more than that. You need that to identify dead routes in a monolith anyway.

If you like static analysis, you should be able to spin up new code in a language more amenable to it than the incumbent code. Not doable in a monolith.