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

Jakob Homan commented on SAMZA-295:
-----------------------------------

I would draw the line pretty aggressively.  What classes do I need to know 
about to write a basic Samza job?  StreamTask and its accessory interfaces, 
{Incoming,Outgoing}MessageEnvelope, TaskCoordinator, RequestScope, 
MessageCollector, Config, Metrics (and its accessory classes).  Everything 
beyond this, such as the SerdeFactory, TaskLifecyclesomethingsomething, etc. 
are for either advanced job writers or framework developers.

Also, this wouldn't hide the other classes, just classify them so users could 
know what they should focus on initially.  

> Classify public APIs between job-writers and framework-extenders
> ----------------------------------------------------------------
>
>                 Key: SAMZA-295
>                 URL: https://issues.apache.org/jira/browse/SAMZA-295
>             Project: Samza
>          Issue Type: Improvement
>            Reporter: Jakob Homan
>             Fix For: 0.8.0
>
>
> Currently all the exposed Java APIs are mingled together, both those meant 
> for developers writing simple Samza tasks (StreamTask, WindowableTask, 
> SystemStreamPartition, etc.) and those APIs needed for extending Samza itself 
> (CheckpointManager, TaskLifeCycleListener, BlockingEnvelopMap, etc.).  The 
> latter group is likely not of use to those needing the former and may clutter 
> and confuse.  It would be good to split these, either at the package level, 
> or via annotations (similar to [Hadoop's audience 
> annotations|https://issues.apache.org/jira/browse/HADOOP-5073]).



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to