Client and server communication
Opa provides three primitives for communicating between clients and the server: session, cell, and network. We can use these three primitives to exchange messages between clients and servers.
Session
A session is a one-way asynchronous communication between the client and the server. A session can be created on a server or on a client, and can be shared between several servers.
To create a session, use either Session.make
or Session.NonBlocking.make
. The Session.make
function creates a session that handles all messages in the background, but only one message at a time. This ensures absolute consistency on the state of the session, but may not be appropriate for all applications.
In contrast, the Session.NonBlocking.make
function creates a session that can handle any number of messages simultaneously. This ensures maximal responsiveness, but the message handler cannot be certain that it is holding the latest value of the state. Let's have a look at how Session...