akka/akka-core

Remove FanoutProcessorImpl and friends

Open

#21,261 opened on Aug 23, 2016

View on GitHub
 (8 comments) (0 reactions) (0 assignees)Scala (3,547 forks)batch import
1 - triagedhelp wantedt:stream

Repository metrics

Stars
 (13,277 stars)
PR merge metrics
 (Avg merge 8d 19h) (10 merged PRs in 30d)

Description

Implement it in terms of BroadcastHub instead (after https://github.com/akka/akka/pull/21183 merged). Implementation can be as simple as roughly:

object Sink {
...
  def asPublisher[T](fanout: Boolean): Sink[T, Publisher[T]] = {
     if (fanout) BroadcastHub.sink(bufferSize).mapMaterializedValue { src =>
        new Publisher {
            def subscribe(s: Subscriber): Unit = src.runWith(Sink.fromSubscriber(s))
        }
     }
  }
...
}

While this might be somewhat less efficient (although not sure!), it removes a rather ugly old class and its dependencies in one simple move.

Contributor guide