Whoa (!), thanks for the great catch. You are absolutely right that the Flow.lazyInit is incorrect. It is not possible to get the M strictly from the Future[M] after all.
I skimmed tests and they seem to not verify this; The Sink version is fine, so at least that. Could you log a bug about this in https://github.com/akka/akka ? If you want you can also try fixing it, it should materialize a Future[M]. Thanks again, great catch -- Cheers, Konrad 'ktoso <http://kto.so>' Malawski Akka <http://akka.io/> @ Lightbend <http://lightbend.com/> On March 5, 2018 at 21:31:59, Stefan Wachter (stefan.wach...@gmx.de) wrote: I just saw that Source.lazily implements a similar concept: def lazily[T, M](create: () ⇒ Source[T , M]): Source[T, Future[M]] Here a the materialized value is a Future that is failed if there was no demand before the source gets never created. I think the two methods Source.lazily and Flow.lazyInit should be alligned (in their name and in their materialized values) *Gesendet:* Montag, 05. März 2018 um 13:13 Uhr *Von:* "Stefan Wachter" <stefan.wach...@gmx.de> *An:* akka-user@googlegroups.com *Betreff:* [akka-user] Akka 2.5.11 - materialization of Flow.lazyInit Hi, studying the newly Flow constructor Flow.lazyInit def lazyInit[I, O, M](flowFactory: I ⇒ Future[Flow[I, O, M]], fallback: () ⇒ M): Flow[I, O, M] (cf. https://doc.akka.io/api/akka/2.5.11/akka/stream/scaladsl/Flow$.html) I wondered how (citation from ScalaDoc) The materialized value of the `Flow` will be the materializedvalue of the created internal flow. could be? Materialization happens before the flow is run. Therefore the materialized value cannot depend on whether their will be some input or not. To fix the issue, the materialzed value of Flow.lazyInit should be a Future[M] or even better a Future[Option[M]]. In case that no internal flow is materialized it would be a Future[None]. --Stefan -- >>>>>>>>>> Read the docs: http://akka.io/docs/ >>>>>>>>>> Check the FAQ: http://doc.akka.io/docs/akka/current/additional/faq.html >>>>>>>>>> Search the archives: https://groups.google.com/group/akka-user --- You received this message because you are subscribed to the Google Groups "Akka User List" group. To unsubscribe from this group and stop receiving emails from it, send an email to akka-user+unsubscr...@googlegroups.com. To post to this group, send email to akka-user@googlegroups.com. Visit this group at https://groups.google.com/group/akka-user. For more options, visit https://groups.google.com/d/optout. -- >>>>>>>>>> Read the docs: http://akka.io/docs/ >>>>>>>>>> Check the FAQ: http://doc.akka.io/docs/akka/current/additional/faq.html >>>>>>>>>> Search the archives: https://groups.google.com/group/akka-user --- You received this message because you are subscribed to the Google Groups "Akka User List" group. To unsubscribe from this group and stop receiving emails from it, send an email to akka-user+unsubscr...@googlegroups.com. To post to this group, send email to akka-user@googlegroups.com. Visit this group at https://groups.google.com/group/akka-user. For more options, visit https://groups.google.com/d/optout. -- >>>>>>>>>> Read the docs: http://akka.io/docs/ >>>>>>>>>> Check the FAQ: >>>>>>>>>> http://doc.akka.io/docs/akka/current/additional/faq.html >>>>>>>>>> Search the archives: https://groups.google.com/group/akka-user --- You received this message because you are subscribed to the Google Groups "Akka User List" group. To unsubscribe from this group and stop receiving emails from it, send an email to akka-user+unsubscr...@googlegroups.com. To post to this group, send email to akka-user@googlegroups.com. Visit this group at https://groups.google.com/group/akka-user. For more options, visit https://groups.google.com/d/optout.