| ▲ | dfabulich an hour ago | |
> With JSON, you often send ambiguous or non-guaranteed data. You may encounter a missing field, an incorrect type, a typo in a key, or simply an undocumented structure. With Protobuf, that’s impossible. Everything starts with a .proto file that defines the structure of messages precisely. This deeply misunderstands the philosophy of Protobuf. proto3 doesn't even support required fields. https://protobuf.dev/best-practices/dos-donts/ > Never add a required field, instead add `// required` to document the API contract. Required fields are considered harmful by so many they were removed from proto3 completely. Protobuf clients need to be written defensively, just like JSON API clients. | ||
| ▲ | klysm an hour ago | parent [-] | |
It’s also conflating the serialization format with contracts | ||