Start here. This is the direct spoken answer to practice first.
Why this question matters
When a user says 'Save failed', the system needs enough breadcrumbs to find what happened. Full-stack observability connects the browser symptom to backend evidence.
I follow one user action through the browser, Next.js boundary, API, database, queue, and external calls using the W3C trace context produced by the instrumentation already in those components. Logs include the current trace and span identifiers plus safe operation metadata; I do not create a new unrelated correlation id at every layer. If support needs a short user-readable code, it can be a separate safe handle that maps to the trace.