Skip to content

Conversation

@faberia
Copy link

@faberia faberia commented Jul 27, 2017

This handles the case of a compatible schema evolution, when new fields with default values are added.
With this, consumers using the new schema can read messages produced with the old schema.

This handles the case of a compatible schema evolution, when new fields with default values are added.
With this, consumers using the new schema can read messages produced with the old schema.
@karrick
Copy link
Owner

karrick commented Jul 29, 2017

This is a really great idea!

It seems one disadvantage of this is that it only works when the entire buffer is empty. So it would only work if it were the last outer-most record (if records embedded in records) in a byte stream.

Which makes me concerned that the default handling for binary records would be different whether or not extra bytes were available to read.

Can we talk about this a bit more? I'd love to see this feature integrated, and clearly the implementation is done well. I am just thinking about the other cases.

@faberia
Copy link
Author

faberia commented Jul 31, 2017

Hi @karrick,
Sure, let's make this feature as good as we can before merging it. Do you know how we could know we are in one of the cases you refer to?
Also, I found out that the default value is not always set with the right type (eg: float64 instead of int). I added another commit with a possible fix.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants