Sharding

com.devsisters.shardcake.Sharding
See theSharding companion object
class Sharding

A component that takes care of communicating with sharded entities. See the companion object for layer creation and public methods.

Attributes

Companion
object
Graph
Supertypes
class Object
trait Matchable
class Any
Self type

Members list

Value members

Concrete methods

def broadcaster[Msg](topicType: TopicType[Msg], sendTimeout: MessengerTimeout): Broadcaster[Msg]
def getPods: UIO[Set[PodAddress]]
def messenger[Msg](entityType: EntityType[Msg], sendTimeout: MessengerTimeout): Messenger[Msg]
def registerEntity[R, Req : Tag](entityType: EntityType[Req], behavior: (String, Queue[Req]) => RIO[R, Nothing], terminateMessage: (Promise[Nothing, Unit]) => Option[Req], entityMaxIdleTime: Option[Duration]): URIO[Scope & R, Unit]
def registerRecipient[R, Req : Tag](recipientType: RecipientType[Req], behavior: (String, Queue[Req]) => RIO[R, Nothing], terminateMessage: (Promise[Nothing, Unit]) => Option[Req], entityMaxIdleTime: Option[Duration]): URIO[Scope & R, Unit]
def registerSingleton[R](name: String, run: URIO[R, Nothing]): URIO[R, Unit]
def registerTopic[R, Req : Tag](topicType: TopicType[Req], behavior: (String, Queue[Req]) => RIO[R, Nothing], terminateMessage: (Promise[Nothing, Unit]) => Option[Req]): URIO[Scope & R, Unit]
def reply[Reply](reply: Reply, replier: Replier[Reply]): UIO[Unit]
def replyStream[Reply](replies: ZStream[Any, Nothing, Reply], replier: StreamReplier[Reply]): UIO[Unit]
def sendToLocalEntitySingleReply(msg: BinaryMessage): Task[Option[Array[Byte]]]
def sendToLocalEntityStreamingReply(msg: BinaryMessage): ZStream[Any, Throwable, Array[Byte]]
def terminateLocalEntity(entityType: EntityType[_], entityId: String): UIO[Unit]

Concrete fields

val register: Task[Unit]
val unregister: UIO[Unit]