Functional thinking and implementing with pure functions is great engineering discipline for your domain module. But you need a better language support that helps build models more responsive to failures, increasing load, and delivers a nice experience to users.
The above three main features that make Scala a successful platform for domain modeling and reactive domain design.
In order to make your model reactive:
Manage failures, as Design for failure
Minimize latency by delegating long-running processes to backed threads without blocking the main thread of execution.
Managing exceptions is a key component of reactive models, you need to ensure a failing component doesn't bring down the entire application. And managing latency is another key aspect that you need to take care of - unbounded latency through blocking call is bad user experience. Luckily, Scala can cover both of them by providing abstractions as part of the standard library.