...
- All peers hold predefined messages schemas.
- Messages follow schema in strict way - no fields are skipped and order of fields is guaranteed.
- Peers send messages as byte stream serializing fields one by one, no delimiters are used between fields and messages.
- For serializing POJO fields different techniques are used:
- External marshaller (e.g. JdkMarshaller for IgniteDiagnosticMessage, SchemaOperationStatusMessage... BinaryMarshaller for GridJobExecuteRequest#jobBytes) - sender consumes serialized byte array to message.
- User's BinaryObjects, Binarylizable are marshalled to byte array prior to serializing a message (the array is stored in cache structures).
- Some messages contain POJO field annotated with GridDirectTransient, and additional byte array field fill with GridCacheMessage#prepareMarshal (e.g. BinaryMarshaller for GridChangeGlobalStateMessageResponse).
Discovery protocol
Current implementation of Discovery protocol:
- Peers use JdkMarshaller (java serialization) to serialize and deserialize a message.
Proposed changes
Message DTO
...