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.
- AVRO Decimal Logical Type Support
- RHOSAK Support
- Data Import CSV UX Improvements
Pull the latest kPow Docker Container
docker pull operatr/kpow:87
Download the latest kPow Java JAR