lepus.std

package lepus.std

Members list

Type members

Classlikes

trait ChannelCodec[T]

ChannelCodec is the interface for encoding/decoding operations for messages that can fail on both ways.

ChannelCodec is the interface for encoding/decoding operations for messages that can fail on both ways.

Note that this is not a typeclass and it is not used in implicit scope and there are no instances of it.

Attributes

Companion
object
Source
ChannelCodec.scala
Supertypes
class Object
trait Matchable
class Any
object ChannelCodec

Attributes

Companion
trait
Source
ChannelCodec.scala
Supertypes
class Object
trait Matchable
class Any
Self type
object EventChannel

EventChannel implements a pubsub topology for events.

EventChannel implements a pubsub topology for events.

In this topology, peers publish or subscribe to certain communication channels (logical streams of data). In this topology every consumer gets a copy of data, which is in contrast to previous topologies where a single piece of data is routed to exactly one peer. This topology guarantees at least one delivery of messages.

Attributes

Source
EventChannel.scala
Supertypes
class Object
trait Matchable
class Any
Self type
trait EventConsumer[F[_], T]

Attributes

Source
EventChannel.scala
Supertypes
class Object
trait Matchable
class Any
final case class EventMessage[T](id: ShortString, time: Instant, payload: T, tag: DeliveryTag)

Attributes

Source
EventChannel.scala
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
trait EventPublisher[F[_], T]

Attributes

Source
EventChannel.scala
Supertypes
class Object
trait Matchable
class Any
final case class Job[T](payload: T, tag: DeliveryTag)

Attributes

Source
WorkPoolChannel.scala
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
object RPCChannel

RPCChannel implements an async RPC communication channel topology.

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
Supertypes
class Object
trait Matchable
class Any
Self type
RPCChannel.type
trait RPCClient[F[_], I, O]

Attributes

Source
RPCChannel.scala
Supertypes
class Object
trait Matchable
class Any
final case class RPCDefinition[I, O](name: QueueName, clientCodec: ChannelCodec[I], serverCodec: ChannelCodec[O])

RPC topology definition

RPC topology definition

Attributes

Source
Data.scala
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
trait RPCServer[F[_], I, O]

Attributes

Source
RPCChannel.scala
Supertypes
class Object
trait Matchable
class Any
final case class RequestMethod[I](id: ShortString, sender: QueueName, payload: I, tag: DeliveryTag)

Attributes

Source
RPCChannel.scala
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
final case class ResponseMethod[I](requestId: ShortString, payload: I, tag: DeliveryTag)

Attributes

Source
RPCChannel.scala
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
final case class TopicDefinition[T](exchange: ExchangeName, codec: ChannelCodec[T], topic: TopicNameEncoder[T])

Pub/Sub topology definition

Pub/Sub topology definition

Attributes

Source
Data.scala
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
object TopicName

Attributes

Source
TopicName.scala
Supertypes
class Object
trait Matchable
class Any
Self type
TopicName.type
final class TopicNameEncoder[A](build: A => String) extends AnyVal

Encoder that encodes types to a lepus.std.TopicName

Encoder that encodes types to a lepus.std.TopicName

Note that this is not a typeclass and it is not used in implicit scope and there are no instances of it.

Attributes

Companion
object
Source
TopicNameEncoder.scala
Supertypes
class AnyVal
trait Matchable
class Any

Attributes

Companion
class
Source
TopicNameEncoder.scala
Supertypes
class Object
trait Matchable
class Any
Self type
object TopicSelector

Attributes

Source
TopicSelector.scala
Supertypes
class Object
trait Matchable
class Any
Self type

WorkPoolChannel implements a work pool topology.

WorkPoolChannel implements a work pool topology.

In this topology, one or more peers produce jobs, and one or more workers compete over processing those jobs. This topology handles workers fail over, so if a worker fails, its jobs will be routed to another worker. However this topology can't guarantee any ordering of messages by definition.

Attributes

Source
WorkPoolChannel.scala
Supertypes
class Object
trait Matchable
class Any
Self type
trait WorkPoolClient[F[_], T]

Attributes

Source
WorkPoolChannel.scala
Supertypes
class Object
trait Matchable
class Any
final case class WorkPoolDefinition[I](name: QueueName, codec: ChannelCodec[I])

Work pool topology definition

Work pool topology definition

Attributes

Source
Data.scala
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
trait WorkPoolServer[F[_], T]

Attributes

Source
WorkPoolChannel.scala
Supertypes
class Object
trait Matchable
class Any

Types

opaque type TopicName

Attributes

Source
TopicName.scala
opaque type TopicSelector

Attributes

Source
TopicSelector.scala