Releases: parapet-io/parapet
Releases · parapet-io/parapet
0.0.1-RC6
0.0.1-RC5
New features:
- Leader Election component
- Cluster and networking:
AsyncClient
,AsyncServer
- Performance improvements: removed usages of
race
operator from scheduled. Processing of 1M messages takes 1sec, before 15sec - Channel accepts a callback that can return a flow
handleError
operator- Smal bug fixes
0.0.1-RC4
What's new:
- for-comprehension
now, some DSL ops can return values:
before:
evalWith("value" , v => eval(println(v)))
now:
for {
v <- eval("value")
_ <- eval(println(v))
} yield
Better support for blocking operations (performance)
Breaking changes:
removed:
Dsl ops:
- def delay(duration: FiniteDuration, flow: Free[C, Unit])
- def suspendWith[A](thunk: => F[A])(bind: A => Free[C, Unit])
- def evalWith[A](thunk: => A)(bind: A => Free[C, Unit])
Direct process call:
def apply(caller: ProcessRef, e: Event)
Channel.send
should be wrapped into blocking
operator explicitly.
0.0.1-RC3
Merge pull request #18 from parapet-io/iss17 Implement BullyLeaderElection
0.0.1-RC2
Performance
- New Scheduler is 2 times faster and consumes less memory. Tested within 24h using various scenarios. Total number of tests: 35 000
New features:
- New
blocking
operator for blocking calls. Example:
class Service {
def blockingCall: IO[String] =
// network call
IO.sleep(1.second) >> IO("data")
}
class Client extends Process[IO] {
import dsl._
private lazy val service = new Service()
override def handle: Receive = {
case Start =>
blocking {
suspendWith(service.blockingCall)(data => eval(println(data)))
}
}
}
- Buffer size limit can be set per process. Example:
val process: Process[IO] = Process.builder[IO](_ => {
case _ => dsl.unit
}).bufferSize(1000) // set a process queue size limit
.build
or
class MyProcess[F[_]] extends Process[F] {
import dsl._
override val bufferSize: Int = 1000
override def handle: Receive = {
case _ => unit
}
}
Breaking changes:
- ParConfig has been changed, see
Configuration
for details.
Bug fixes:
- No bugs were found since
0.0.1-RC1
. New bugs introduced in0.0.1-RC2
were fixed in the same branch.