Skip to content

Add Long-Living Asynchronous Request Scenario in Qubership RobotShop with Trace Demonstration #7

@denifilatoff

Description

@denifilatoff

Is your feature request related to a problem? Please describe

We need to implement a scenario in RobotShop involving long-living asynchronous requests between two microservices. One microservice will initiate a trace and send an asynchronous request to the second microservice via REST. The second microservice will respond with a synchronous Ack, and then generate a Callback. This will help us verify how tracing works in this asynchronous setup and ensure that Span Links and TraceIDs are properly handled.

Key tasks:

  • Verify and document how auto-instrumentation behaves without any modifications to the code.
  • Explore and document the TraceID lifecycle — when it should be interrupted and how to track related traces.
  • Reproduce the Span Links case and demonstrate how they are visualized in a simple Tracing Backend (Jaeger).

A UI button should be added to trigger the Callback on the second microservice for demonstration purposes.

Describe the solution you'd like

Create a scenario where two microservices (preferably implemented using Java Quarkus for the second one) interact as follows:

  1. The first microservice starts a trace and sends an asynchronous REST request to the second microservice.
  2. The second microservice receives the request and responds with an Ack.
  3. The second microservice then generates a Callback (triggered via a UI button).
  4. Ensure that the traces for both services are correctly linked and visible in Jaeger with appropriate Span Links.

The solution should:

  • Test auto-instrumentation and observe its behavior without manual code changes.
  • Document the TraceID lifecycle, ensuring it is correctly managed between the microservices.
  • Reproduce and demonstrate how Span Links work in the Jaeger tracing backend, showing the relationship between the traces.

Describe alternatives you've considered

No response

Additional information

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    Status

    Backlog

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions