Request routing refers to the ability to dynamically route requests amongst a set of interacting microservices. Sandboxes rely on request routing to make requests flow through test workloads, and for isolating the sandbox from baseline services.
Request routing for Sandboxes is realized either using a service mesh such as Istio or without a service mesh, using Signadot's proxy sidecar containers. When using a service mesh, Signadot configures the mesh to perform request routing on its behalf without needing additional in-cluster components specific to routing. The proxy sidecar is a lightweight container that can be added to any workload through a Kubernetes Pod annotation.
All routing is done based on an opaque value called the Routing Key. The routing key is unique to each sandbox and generated by the system when the sandbox is created. A request containing the routing key in a supported header will be routed to each changed service in a sandbox, as long as context propagation is enabled along the entire path of requests. Additionally, URLs from endpoints automatically inject the routing key.