[ 
https://issues.apache.org/jira/browse/SAMZA-429?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14180135#comment-14180135
 ] 

Jonathan Herriott commented on SAMZA-429:
-----------------------------------------

I would be okay with this approach, so that's a +1 from me as it is backward 
compatible while still exposing a generic data model.

> Decouple Protocol from Task
> ---------------------------
>
>                 Key: SAMZA-429
>                 URL: https://issues.apache.org/jira/browse/SAMZA-429
>             Project: Samza
>          Issue Type: Improvement
>            Reporter: Jonathan Herriott
>
> Maybe someone can point me in the right direction if this is wrong.  One 
> thing I've disliked about tasks is the fact that the protocols have to be 
> baked directly into the Task, so if you want to process JSON, you have to 
> treat the message contents as a HashMap, but if you want to use Avro, it 
> needs to be treated as a GenericRecord object, etc.  I think it would be 
> super beneficial to fully abstract this from the Task object and just treat 
> each thing as a "Message" object.  I think the advantage of this is that you 
> can test with JSON and run with Avro in production or whatever as debugging 
> with JSON is a lot easier than Avro.
> The thing is, in the Task, I only care about the structure, I don't really 
> care about what protocol it is.  Maybe this statement is a bit naive, but I 
> don't think there would ever be a good situation in which you would pass just 
> a string or integer or whatever instead of some form of hierarchical message. 
>  In my opinion, all Serde should return a common interface for a Record for 
> deserialization.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to