It might be cleaner if output streams just registered themselves? Like with actions in Spark they just automatically trigger computation when they are called. You don't explicitly register them. It might be nice if all of the output streams inherited from a parent class that registered them with the ssc during construction. I guess maybe you can refactor this in 1.0.