Awesome
Protoshell
Loosely based on Protoshell
Protoshell implements Storm's multilang using the Protobuf serializer to improve throughput and decrease CPU when compared to the default JSON serializer.
It uses compact binary communications protocol and transfers tuples as union fields, mapping Protobuf supported types to Java types and vice versa.
When a type doesn't have Protobuf representation it is mapped to byte[]
.
Performance
Protoshell currently provides TBD throughput, when compared to the standard Storm JSON multilang protocol.
The protocol
Protoshell captures multilang protocol as unions:
StormMsg
for messages that could be sent from StormShellMsg
for messages that could be sent from a shell spout or a bolt
The exchange follows the documented JSON script.