Hi Almog, Like the KIP - I think being able to support decimals in JSON in the same way most other systems do is a great improvement.
It's not 100% clear to me from the KIP what the current format is. Is the text decimal a base16 encoded number, or is it base16 encoded binary form of the number? (I've not tried to get my head around if these two are even different!) One suggestion I have is to change the proposed new config to only affect decimals stored as text, i.e. to switch between the current base16 and the more common base10. Then add another config to the serialzier only that controls if decimals should be serialized as text or numeric. The benefit of this approach is it allows us to enhance the deserializer to automatically handle numeric decimals even without any config having to be set, i.e. default config in the deserializer would be able to handle numeric decimals. Of course, this is a two edged sword: this would make the deserializer work out of the box with numeric decimals, (yay!), but would be a breaking change in that things that previously failed would suddenly start deserializing. This is a price I'm willing to pay. IMHO, we should then plan to switch the default of decimal serialization to numeric, and text serialization to base 10 in the next major release. (With upgrade notes to match). Though I know this is more contentious, I think it moves us forward in a much more standard way that the current encoding of decimals. On Tue, 25 Jun 2019 at 01:03, Almog Gavra <al...@confluent.io> wrote: > Hi Everyone! > > Kicking off discussion for a new KIP: > > https://cwiki.apache.org/confluence/display/KAFKA/KIP-481%3A+SerDe+Improvements+for+Connect+Decimal+type+in+JSON > > For those who are interested, I have a prototype implementation that helped > guide my design: https://github.com/agavra/kafka/pull/1 > > Cheers, > Almog >