Protocol Buffers, or Protobuf, is an efficient schema-based data serialization protocol. gRPC is a high-performance, HTTP/2-based RPC framework. The two work together flawlessly to help you build world class distributed systems. At Square, client and server engineers collaborate on Protobuf schemas to define APIs. The teams also built Wire, a library which processes schemas and generates Java code that applications can use to send and receive data. Last year, they started working on Wire 3, which is rewritten in Kotlin, generates Kotlin code, and adds a number of features, like Protobuf messages as data classes, a multiplatform runtime module, coroutines-based gRPC APIs, and a Gradle plugin. In this session, Efgor Andreevici and Benoit Quenaudon take a deep dive into these features and talk about how they leveraged Kotlin to create better APIs. They'll also show you how to get the best out of Protobuf and gRPC for your server and client applications using Wire.