A remote procedure call (RPC) invokes an operation in another process or system as though it were local. That familiar model can conceal network and blocking behavior: database calls are essentially RPCs, and standard drivers such as JDBC commonly use blocking I/O. section 1.4.1
In a scaling chat application, combining threads, locks, database access, and RPC-based network services can make behavior and failures difficult to isolate. Synchronous RPC and blocking I/O contrast with an actor approach based on asynchronous messaging and nonblocking I/O. section 1.3 section 1.4.1
Akka gRPC provides an RPC-oriented way to expose ports for an ActorSystem:
- Define the intended interface in a .proto file; generated classes provide the required implementation pieces. section 11.2
- Use Protocol Buffers together with classic RPC, with HTTP/2 available for communication. section 11.2
- Create server and client ports; the server side establishes the starting point, while client treatment is deferred. section 11.2
Table 1.1 Differences between the traditional approach and the Akka approach (view table figure)
Compare RPC-based scaling with actor messaging across shared state, interactivity, network I/O, and failure handling. section 1.3




