Client Protocol
Client protocol should be simple enough to implement in any programming language.
Streaming/ Continuous Response
The Protocol should be able to send partial or chunked response to the client. It should have the ability to implement the Observer pattern.
Framing
If Object is large then client/server should be able to send that object in chunks.
Pluggable
Server side implementation should be pluggable.
JSON Support
Server should be able to interpret JSON document in client api request, and then convert that to pdx using JSONFormattor, vice versa.
Region Key as byte[]
We should be able to support byte[] as a region key.
Performance
It should be performative similar to current Geode client.
Versioning
Should we need to add features or functionality to the client, it should be easy to add a new version of the protocol, and allows both to operate with different clients on a single server
Authentication/Security
It must be possible to transmit the protocol over TLS. We also use Diffie-Hellman key exchange; this should be supported (however, this mostly just means exchanging some bytes).