Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

> If you have old clients that expect that field you are removing to be there in a meaningful way

Right, there's the rub. `required` means that anyone who deserializes your proto falls into this category. That's a much larger group than "anyone who reads a specific field". So the list of clients now is forced to include any and all middleware that may read your proto (imagine a routing layer or some kind of analytics system or whatnot).

(Note also that there's lots of ways to make reading a field that is empty fallback to doing some reasonable non-catastrophic behavior, required doesn't let you do those things).



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: