RPCChannel

lepus.std.RPCChannel
object RPCChannel

RPCChannel implements an async RPC communication channel topology.

In this topology, each server has its own endpoint, where clients can send methods to, server then can decide to response to sender's address, ignore the request, or reject it. Clients can then consume responses, and mark them as processed. This topology models an point to point communication, with at least one delivery semantics, so your processing MUST be idempotent and async, as both responses and requests might be received several times, and with any ordering.

Attributes

Source
RPCChannel.scala
Graph
Supertypes
class Object
trait Matchable
class Any
Self type
RPCChannel.type

Members list

Value members

Concrete methods

def client[F[_], I, O](endpoint: RPCDefinition[I, O], persistent: Option[QueueName])(ch: Channel[F, NormalMessagingChannel[F]])(using F: Concurrent[F]): F[RPCClient[F, I, O]]

client peer in lepus.std.RPCChannel topology

client peer in lepus.std.RPCChannel topology

Attributes

Source
RPCChannel.scala
def server[F[_] : Concurrent, I, O](endpoint: RPCDefinition[I, O])(ch: Channel[F, NormalMessagingChannel[F]]): F[RPCServer[F, I, O]]

server peer in lepus.std.RPCChannel topology

server peer in lepus.std.RPCChannel topology

Attributes

Source
RPCChannel.scala