3 ms·
Protobufs are an interesting hybrid. They assume a common, linear history of schema versions, where all data generators had access to an arbitrary version in th
by skybrian 2y ago
Protobufs are an interesting hybrid. They assume a common, linear history of schema versions, where all data generators had access to an arbitrary version in that history. The schemas define field ids and types, but not which combinations of fields can show up.
If you can upgrade all the data then you don’t need to worry about versioning,
Or you can do it like HTTP headers and hope for the best.
- taeric 2y agoProtobufs are also a fun place to look for how much debate people will get into regarding required versus optional fields. Your post is taking an implicit "everything is optional" view. But, it does allow you to be stricter. Common Lisp Object System also touched on all of these ideas years ago.
- smackmybishop 2y agoEverything has been `optional` for about a decade. > The option to set a field to required is absent in proto3 and strongly discouraged in proto2. https://protobuf.dev/overview/#syntax https://protobuf.dev/overview/#syntax
- taeric 2y agoAh, I dropped off protobuf a while back. I definitely remember a lot of uproar about it, at the time.