Integrating Akka Streams into Play
In this section, we will develop a Reactive Multi-User Chat application using the following technology stack:
- Play Framework
- Play Web Socket API
- Akka Streams API
- Scala
Designing a Reactive Chat System
In this section, we will design and discuss our Reactive Multi-User Chat System, so that its easy for us to understand how our chat system works and how to develop our application in the next section.
We can assume our Reactive Chat System to be on a high level, as shown here:

In our Reactive Chat System, MergeHub acts a Source and BroadcastHub acts as a Sink:

Here multiple users connect to our system and send messages to others through the MergeHub component. So those message senders will become Producers.
At the same time, other users connect to our system and receive messages from BroadcastHub, as shown in the preceding diagram. So those message receivers will become consumers.
Developing the Reactive Chat System
In this section, we will develop and discuss our Reactive...