Summary
In this chapter, we learned about all the internal serialization/deserialization algorithms. We saw that there are multiple ways to encode integers and that is why we have that many integer types in Protobuf. After, we covered length-delimited encoding and how it relates to types such as strings, packed repeated fields, and embedded messages. Finally, we talked about unpacked repeated fields and their overhead.
In the next chapter, we will talk about schema evolution over time. We will lean on all the knowledge that we have right now to understand the problems that we might have when updating schemas and how we can overcome them.