Parapet 是一个用来构建分布式事件驱动系统的纯功能库。
编写分布式系统是一项具有挑战性的任务,这在逻辑上可分为两个主要方面:实现分布式算法并运行它们,这不是秘密。 Parapet扮演分布式算法执行框架的角色 - 它可以被视为低级效果库和以DSL形式公开的高级操作之间的中间层。主要专注于设计和实现分布式算法的分布式工程师不需要担心IO等低级抽象,或者对某些计算机科学主题有一定的深入了解,例如并发。他们需要知道的是库满足的属性以及它提供的保证。另一方面,专门编写低级库的工程师可以专注于实现IO或Task等核心抽象,从而进行性能优化和实现新功能。 Parapet是模块化库,几乎所有组件都可以用自定义实现替换。
关键特性:
示例代码:
import io.parapet.core.{Event, Process} class Printer[F[_]] extends Process[F] { import Printer._ // import Printer API import dsl._ // import DSL operations override def handle: Receive = { case Print(data) => eval(println(data)) } } object Printer { case class Print(data: Any) extends Event }