...
Every message will adhere to the following generic message definition. A Message will comprise of a MessageHeader and either a Request or Response component.
Message = MessageHeader MessageHeader (Request | Response) | Description | |
---|---|---|
MessageHeader | type = MessageHeader | The MessageHeader corresponding to this Message. |
Request | type = Request | This field will contain the Request component. |
Response | type = Response | This field will contain the Response component. |
...
MessageHeader = Size CorrelationId isPartialMessage hasMetaData | Description | ||||
---|---|---|---|---|---|
Size | type = int32 | Size of request or response (not including this header) | |||
CorrelationId | type = int32 | The correlationID used to track match a request /responseto its corresponding response. This will be important if/when we allow for out-of-order messages in the future. | |||
isPartialMessage | type = boolean | Is this a partial message? | hasMetaData | type = boolean | Does the message have meta data associated with itThe exact semantics of partial messages is to be determined. |
Request
The request would contain the fixed size request header, optional metadata and request API parameters.
...
Response = [MetaData] APIResponse | Description | ResponseHeader | type = ResponseHeader | The ResponseHeader corresponding to this Response
---|---|---|
MetaData | optional, type = MetaData | This field is optional and will be populated if the MessageHeader.hasMeta is true |
APIResponse | type = variable | The Api specific Reponse message. Here are some examples of Response messages PutResponse | GetResponse | PutAllResponse | GetAllResponse | ServerConfigResposne | ClientConfigResponse | AuthResponse | ErrorResponse |
...