In my company we were using flatbuffers for few months and after we realized we would need grpc sooner than we thought, we had to switch to protocol buffer.
With these months of use, we faced some difficulties with flatbuffers and I wanted to share my questions and insights with you.
From a high level aspect & ease of use:
- I feel this is a really interesting project with an innovative design and a lot of potential. I often check the progress but it doesn't seem to be as pushed by google than protocol buffers. Is there a reason why there is only one google maintainer ? (it seems)
- Would it be totally impossible to "merge" the efficiency of flatbuffers and the ease of protocol buffers ?
- The Python binding is working but doesn't seem to be often updated and with as much ease as C++. The C++ compiler improve really quickly but others languages don't (GRPC for example).
Which can be a problem if your stack use multiple languages.
- Will the object api only be for c++ or can it be extended to other langages ?
- In protocol buffer there is a DebugString function which is quite useful to debug, it would be nice to have one in flatbuffers, without having to parse the .fbs and serialize to json.
- It's probably us but we didn't find it explicit that adding objects to vector must be in reverse order. It should probably be more highlighted in the doc (at that time, the doc wasn't as complete though). Also could it be possible to add them in normal order ? New developers can find this
disconcerting.
About versionning:
- It is mentioned that we can add a field without any problem. What about a required field ?
- Also is it possible to make a required field deprecated ?
- There are times when we wish to remove deprecated field from the .fbs, for readability. I wonder if we could find a better way of deleting fields without using ids.
About performance:
Thank you very much,
In my company we were using flatbuffers for few months and after we realized we would need grpc sooner than we thought, we had to switch to protocol buffer.
With these months of use, we faced some difficulties with flatbuffers and I wanted to share my questions and insights with you.
From a high level aspect & ease of use:
Which can be a problem if your stack use multiple languages.
disconcerting.
About versionning:
About performance:
https://discuss.dgraph.io/t/comparison-of-protocol-buffers-v-s-flatbuffers/1085/5
https://blog.dsl-platform.com/flatbuffers-performance-in-java/
Thank you very much,