[
https://issues.apache.org/jira/browse/KAFKA-3455?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16009389#comment-16009389
]
Bobby Calderwood commented on KAFKA-3455:
-----------------------------------------
The current Interface definitions for `Processor` and `Transformer` make it a
bit difficult to re-use one for the other. Specifically, the `void init()` and
`void close()` method signatures are identical, but the `punctuate(long
timestamp)` signature differs in a bizarre way: it has a return type `R` the
same as `R Transformer.transform(K key, V value)`, but the docs specify that
`null` must always be returned.
Wouldn't it make sense to DRY these up a bit by either a) changing the method
signature of `R Transformer.punctuate(long timestamp)` to match that of
`Processor` (i.e. with a `void` return type), and/or b) creating another
interface encapsulating the lifecycle stuff (`init()`, `close()` [or just use
Java's AutoCloseable], and `punctuate(long timestamp)`) and make `Processor`
and `Transformer` single-method interfaces? They could either inherit from the
common lifecycle-ish interface, or else compose together with it in
implementing classes.
> Connect custom processors with the streams DSL
> ----------------------------------------------
>
> Key: KAFKA-3455
> URL: https://issues.apache.org/jira/browse/KAFKA-3455
> Project: Kafka
> Issue Type: Sub-task
> Components: streams
> Affects Versions: 0.10.0.1
> Reporter: Jonathan Bender
> Labels: user-experience
> Fix For: 0.11.0.0
>
>
> From the kafka users email thread, we discussed the idea of connecting custom
> processors with topologies defined from the Streams DSL (and being able to
> sink data from the processor). Possibly this could involve exposing the
> underlying processor's name in the streams DSL so it can be connected with
> the standard processor API.
> {quote}
> Thanks for the feedback. This is definitely something we wanted to support
> in the Streams DSL.
> One tricky thing, though, is that some operations do not translate to a
> single processor, but a sub-graph of processors (think of a stream-stream
> join, which is translated to actually 5 processors for windowing / state
> queries / merging, each with a different internal name). So how to define
> the API to return the processor name needs some more thinking.
> {quote}
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)