public static IRunnableGraph<NotUsed> GraphWithJunctionsBuilder(int numberOfJunctions)
{
return RunnableGraph.FromGraph(GraphDsl.Create(b =>
{
var broadcast = b.Add(new Broadcast<NotUsed>(numberOfJunctions));
var outlet = broadcast.Out(0);
for (var i = 1; i < numberOfJunctions; i++)
{
var merge = b.Add(new Merge<NotUsed>(2));
b.From(outlet).To(merge);
b.From(broadcast.Out(i)).To(merge);
outlet = merge.Out;
}
b.From(Source.Single(NotUsed.Instance)).To(broadcast);
b.From(outlet).To(Sink.Ignore<NotUsed>().MapMaterializedValue(_ => NotUsed.Instance));
return ClosedShape.Instance;
}));
}