...
Multiple layers will process the Client request message. The following table contains the handlers for processing request, handler to execute the api, and handlers to send a response back to the client. Each handler will implement the Handler interface and will be responsible for its task. The column-1 represents(top-to-bottom) the inbound handlers to process the incoming request. The column-3(bottom-to-top) represents the outbound handler to send the response back to the client.
Request Message (Down) | Description | Response Message (up) | Description |
---|---|---|---|
MessageBytesCollector | Collect Message bytes
| MessageSender | Send the message to the client |
MetadataCollector |
| ||
MessageDecoder | Construct Message.
| ResponseEncoder | Serialize the response if there is no Exception We will have multiple encoderencoders(thrift) |
DecorateKeyValue | Update key value based on metadata
| ResponseMetadataHandler | add any metadata in response |
DecorateKeyValue | Decorate key value based on metadata
| ||
ExceptionHandler | if Exception is set in context, then generate Exception Message | ||
AuthenticateHandler |
| ResponseAuthorizationHandler | authorize response
|
RequestAuthorizationHandler | 1. Request object will generate AuthContext 2. And Call then call authCallback 3. if fail then generate AuthFailed error | StatsHandler | Update the stats based on response or error code |
StatsHandler | Update the geode stats for request | ResponseHandler | Construct Response Message from request |
ApiExecutionHandler (executetheapiexecute the api); if there is no error then call Request.ApiInvoker() for a synchronous request or call Request.AsyncApiInvoker for async Request |
...