Skip to content

Connection hub implementation on top of akka remoting

License

Notifications You must be signed in to change notification settings

evolution-gaming/conhub

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ConHub

Build Status Coverage Status Codacy Badge Version License: MIT

ConHub is a distributed registry used to manage websocket connections on the different nodes of an application. It enables you to send serializable message to one or many connections hiding away complexity of distributed system. In short: user provides lookup criteria and a message, there after conHub does the job routing message to physical instances of a matched connections

Usage example

type Connection = ??? // type representing physical connection
final case class Msg(bytes: Array[Byte]) // serializable
final case class Envelope(lookup: LookupById, msg: Msg)
final case class LookupById(id: String)
val conHub: ConHub[String, LookupById, Connection, Envelope] = ???
conHub ! Envelope(LookupById("testId"), Msg(Array(…)))

Setup

addSbtPlugin("com.evolution" % "sbt-artifactory-plugin" % "0.0.2")

libraryDependencies += "com.evolutiongaming" %% "conhub" % "1.3.0"