Better than using stateful concurrency? If you have read "Concepts, Techniques, and Models of Computer Programming" you would see that each approach is not necessarily "better", they each have their own unique advantages and disadvantages
To quote from CTM: The message-passing approach is often the best for multi-agent programs, i.e., programs that consist of autonomous entities (“agents”) that communicate with each other. The shared-state approach is often the best for data-centered programs, i.e., programs that consist of a large repository of data (“database”) that is accessed and updated concurrently. Both approaches can be used together for different parts of the same application.