JSON Schema IS a thing (json-schema dot org), so it's not quite fair to say that there's NO support for schema validation. Protobuf is still always going to win on performance, of course. Especially since adding schema validation to JSON-based APIs only makes them even slower.
Thanks for the article NK, really interesting for people like me who didn't work with protocol buffers.
I'd highlight your section on rolling it out. It's easy to design theoretical architectures, another thing is rolling that out in existing services. Makes sense to implement an existing framework, upgrade version, and still have a feature toggle to release in a controlled manner.
This is compiled to generate code in system specific language.This code is Protobuf.
Now this handy code, can be easily imported in to the programs.
We can define our data by hydrating the schema we wrote earlier. Serialising and de-serialising is also easy, as the protobuf file provides methods to do it already!
Thanks NK for the detailed explanations. Why does JS doesn’t perform as good as Java or python using Protobuf?
JSON is native to JS - and makes it efficient. You can read more about the study: https://auth0.com/blog/beating-json-performance-with-protobuf
JSON -> Binary, yea totally makes sense for perf wins.
Great read, thanks. What would you classify as a big payload?
Hey Jean, sorry - I don't have specific numbers. You can read this article to get a better idea: https://auth0.com/blog/beating-json-performance-with-protobuf/
Thanks! I’ll read that
Thanks for the mention NK! I love your newsletter as well.
you're welcome.
JSON Schema IS a thing (json-schema dot org), so it's not quite fair to say that there's NO support for schema validation. Protobuf is still always going to win on performance, of course. Especially since adding schema validation to JSON-based APIs only makes them even slower.
Thanks for the article NK, really interesting for people like me who didn't work with protocol buffers.
I'd highlight your section on rolling it out. It's easy to design theoretical architectures, another thing is rolling that out in existing services. Makes sense to implement an existing framework, upgrade version, and still have a feature toggle to release in a controlled manner.
I appreciate your comment, Fran. Thank you
Really enjoyed the article and the analogy at the beginning. Thanks, NK
Thanks for sharing
Good share!
So you define your message schema in proto file.
This is compiled to generate code in system specific language.This code is Protobuf.
Now this handy code, can be easily imported in to the programs.
We can define our data by hydrating the schema we wrote earlier. Serialising and de-serialising is also easy, as the protobuf file provides methods to do it already!
How big is "big" in this context?