Its in progress right now ....
Approach
We will have layered approach for handling the client request message and server response message. Each layer will do its work and pass the message to next layer. Currently, we are planning to add this with Geode server, but eventually, it should work with Netty server/ other.
Layering
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 Message interface and will be responsible for its task.
Request Message (Down) | Description | Response Message (up) | Description |
---|---|---|---|
MessageBytesCollector | Collect Message bytes | MessageSender | Send the message to the client |
MessageDecoder | Construct Message | ResponseEncoder | Serialize the resposne |
DecorateKeyValue | Update key value based on metadata | ResponseMetadataHandler | add any metadata in resposne |
DecorateKeyValue | Decorate key value based on metadata | ||
AuthenticateHandler | verify whether connection is authenticated or not | ResponseAuthorizationHandler | authorize response |
RequestAuthorizationHandler | Authorize the request | ResponseHandler | Construct Response Message |
StatsHandler | Update the geode stats for request | StatsHandler | |
ApiExecutionHandler (execute the api) |