Status: Open (View Workflow)
Affects Version/s: None
Fix Version/s: None
Infinispan should expose a single endpoint which should behave as follows:
- by default offer an HTTP/1.1 RESTftul interface
- through HTTP upgrade allow switching to better protocols
- support an HTTP/2 RESTful interface
- support Hot Rod 3.0, which would be a gRPC protocol with additional L2 and L3 intelligence for capable clients
UPDATE (6/10/2015): Hot Rod 3.0 could become a HTTP REST protocol taking advantage of existing infrastructure to deal with HTTP requests efficiently, and if it was based on HTTP 2.0, we could have binary data inside of it. Performance should be on par. Text mode could be available for debug or demos. This essentially would mean REST and Hot Rod would merge into one.
A binary protocol rethink is needed to take better advantage of CPUs and buffering. This is based on the ideas of Martin Thompson's Simple Binary Encoding blog post
In essence, we need to move Hot Rod protocol towards having mostly fixed size fields, hence getting rid of `vInt` and `vLong` formats which although safe some bytes, they hinder long stream reading patterns.
An optional part here would be whether to consider using SBE directly, but this JIRA should be mostly oriented at making sure we have a protocol that can be read fast and efficiently.