2022-06-28, 14:30–14:50, Hall 3
Communicating and persisting data (and state!) is at the very core of software engineering. That’s where serialization comes in - but getting it right can be quite the challenge. Here's how to make it less so.
Communicating and persisting data (and state!) is at the very core of software engineering. That’s where serialization comes in: transforming a set of objects into a stream of bytes.
There are endless competing standards out there, roughly divided into textual and binary. For binary, Protobuf by Google is the undisputed ‘king of the hill’ and even spawned its own RPC library - gRPC.
Getting serialization right can be quite the challenge, especially when large data sets and big messages are involved. Two of the key challenges are:
The options are endless, but the long-term implications of your choices can be hard to predict.
Backwards compatibility is paramount, often making changes time-consuming and costly.
In this talk we are going to discuss the real-world techniques and optimizations learned building a high-performance production debugger. We’ll cover everything from the theory of serialization, through a quick introduction to Protobuf, all the way to the nitty-gritty details of how to squeeze every bit of performance under the most demanding conditions.