NOTE
Serialization Protocols for Network Services
Choosing text/binary serialization by schema evolution, compatibility, size, CPU, tooling, and security.
This is a historical learning note and may contain outdated or incomplete understanding.
A serialization protocol maps application values to bytes and back. Important design dimensions are schema/evolution rules, backward/forward compatibility, payload size, CPU cost, cross-language support, observability/tooling, and security.
JSON is human-readable and flexible but relatively verbose. Protobuf/Thrift/Avro-style formats provide structured schemas and compact binary encodings with different evolution models.
Java native serialization should generally not be used as an untrusted network protocol because of tight Java coupling and deserialization risk.
Serialization is separate from framing: a TCP stream still needs a way to delimit each serialized message.