package common; // This is a fundamental brick in our inter-services messaging. // // We use it to implement asynchronous request-response paradigm. Each actual // request message and response message SHOULD contain field `header` of type // Request or Response respectively message Request { required string type = 4; // This context could be used for logging and tracing, especcially to encode // SpanContext in TEXT_MAP Format for Opentracing enabled tracers map context = 2; // If is set call side expects a response, if not it's fully asynchronous // request optional string correlation_id = 3; } message Response { required string type = 4; // original request header, on which this response answering required Request request = 2; } message DynamicResponse { required Response header = 1; // EDN inside required string payload = 2; }