Sobes.tech
Junior — Middle

How is request path tracking implemented in the system?

sobes.tech AI

Answer from AI

Request path tracking in a system is usually implemented using logging and tracing.

Main methods:

  • Logging: during request processing in different layers of the application (controllers, services, DAO), logs are recorded with a unique request identifier (e.g., requestId), which allows assembling a sequence of actions.

  • Using MDC (Mapped Diagnostic Context) in loggers to automatically add request context to each log.

  • Distributed system tracing: using tools like Zipkin, Jaeger, or OpenTelemetry, which collect and visualize the request path across microservices.

  • Filters and interceptors in web frameworks (e.g., Servlet Filter in Java), where an identifier is generated or extracted at the entry point and passed along.

Example of using a filter to add requestId:

public class RequestIdFilter implements Filter {
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) {
        String requestId = UUID.randomUUID().toString();
        MDC.put("requestId", requestId);
        try {
            chain.doFilter(request, response);
        } finally {
            MDC.remove("requestId");
        }
    }
}

This allows logs to show actions related to a specific request and trace its path through the system.