Skip to content
All releases Release 87

AVRO Decimal Logical Type Support

Factor House·November 4, 2021

Downloads

Artifacts published with release 87.

Kpow can be found on Dockerhub

View our Docker quick start guide for help getting started.

Kpow v87 features support for AVRO Decimal Logical Type fields, improved Data Import UX for CSV message upload, and support for RHOSAK.

AVRO Decimal Logical Type Support

The AVRO specification allows for several logical types, including decimal type which allows for an arbitrary precision number with optional scale.

On the JVM decimal types result in a BigDecimal, with the wire-format being a BigInteger stuffed into a ByteBuffer. In early version of Kpow this resulted in users seeing strange characters output for decimal types as our inspect engine just naively converted the ByteBuffer into a string (sorry about that!). Data Produce of decimals wasn't supported.

In time we added a logical type conversion that converted these ByteBuffers into floats in the Data Inspect results, but that's not a great solution due to float precision / interpretation.

Now in v87 of Kpow decimal logical type fields are represented in our UI as string fields, this means that there is no room for float precision issues between the many hands that ferry fields between browser, JVM, to Kafka, and back again.

Where a schema declares a decimal logical type field our UI will check both scale and precision when producing messages. Both Avro and Avro (Strict) serdes now support consuming and producing messages with decimal fields.

Changelog

Kpow v87

  • AVRO Decimal Logical Type Support
  • RHOSAK Support
  • Data Import CSV UX Improvements