You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@kafka.apache.org by "Mark Tranter (JIRA)" <ji...@apache.org> on 2018/11/18 08:41:00 UTC
[jira] [Created] (KAFKA-7653) Streams-Scala: Add type level
differentiation for Key and Value serdes.
Mark Tranter created KAFKA-7653:
-----------------------------------
Summary: Streams-Scala: Add type level differentiation for Key and Value serdes.
Key: KAFKA-7653
URL: https://issues.apache.org/jira/browse/KAFKA-7653
Project: Kafka
Issue Type: Improvement
Components: streams
Reporter: Mark Tranter
Implicit resolution/conversion of Serdes/Consumed etc is a big improvement for the Scala Streams API. However in cases where a user needs to differentiate between Key and Value serializer functionality (i.e. using the Schema Registry), implicit resolution doesn't help and could cause issues.
e.g.
{code:java}
case class MouseClickEvent(pageId: Long, userId: String)
builder
// Long serde taken from implicit scope configured with
// `isKey` = true
.stream[Long, MouseClickEvent]("mouse-clicks")
.selectKey((_,v) => v.userId)
.groupByKey
.aggregate(() => 0L, (_: String, mce: MouseClickEvent, count: Long) => count + 1)
.toStream
// Same Long serde taken from implicit scope configured with
// `isKey` = true, even thought the `Long` value in this case
// will be the Value
.to("mouse-clicks-by-user")
{code}
It would be ideal if Key and Value Serde/SerdeWrapper types/type classes could be introduced to overcome this limitation.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)