stateful TCP broadcaster with aggregation and transformation
Though I don’t like Akka’s actors, materialize (no need for them with Monix): monix-nio doesn’t necessary look like production-grade solution. (and there was a requirement “Желательно использование фреймворков, облегчающих написание сетевых серверов”)
Yet not strictly nesessary that Akka's TCP server code
is better than monix-nio
or fs2
HARD TO WRAP….
Scala community advised (good feedback from people who used Akka streams before) fs2.io.tcp (I’m not sure whether fs2 is fully production ready & probably it’s not-conservative to use it, but for the demo purposes it’s OK, anyway the interviewer advised me to write my “best code”. Clean codebase. Large community. Active development. )
DECISION
-
Akka - no will
-
Monix - not good tcp for prod? Okay for the demo. Check if it works at all, first… yet OKay Discussed on the interview a lot...
There's no monix-nio version for Monix 3.0.0-RC2. Only 3.0.0-RC1 so far. Yet I'm a bit familiar with Monix, as I did some data-processing app with it and it was OK. -
FS2/ZIO - too complicated, no time … yet GOOD ALL + TCP is OK… next time for 2+ weeks! I'd need to catch up here. FS2 could be used as TCP though: with Monix Task as type parameter. Yet conversion of streams is only possible through reactive streams Java interface (without type inference).
MONIX