Haskell 中的流处理 - Open Day 回顾

HStreamDB 团队于上周日举办了线上 Open Day,HStreamDB CTO 韩冬与大家分享了有关 Haskell 中流处理解决方案的一些思考。

视频回放抢先看

Free Monad 的流处理

韩冬首先介绍了 Haskell 现 Haskell 生态中常见的基于 Free Monad 的流处理方案,包括 streaming 和 pipes 等,并分析了目前方案的基本原理和优缺点。当前方案通过 Free Monad 构造,支持任意地遍历和处理,但是类型过于复杂,不利于开发者参与,也不利于用户理解和应用。

1.png
2.png

Z.Haskell 的流处理

由此,韩冬引出了他所进行的项目 Z.Haskell 中流处理方案的探索过程,并分享了自己设计实现新的流处理库时收获的经验与教训。

3.png 4.png

流处理方案对比

在分享的最后,他总结最终选择的方案原理,并和其他方案比较得出优点和不足:优点包括类型简单可组合,且不需要涉及到单子变换的知识等。而缺点则是因为强制了在 IO 中,不接受用户提供的状态单子。

在多次推翻与重建、借鉴与学习、突破与创新中,BIO 有了雏形,并在 流数据库 HStreamDB 中投入使用。在随后的讨论环节中,大家探讨了 HStreamDB 所涉及的流处理与其他现有产品的异同,以及如何使 BIO 更好地适配我们未来的产品。

除了对社区开放、倾听来自社区的各种不同声音,Open Day 也是 EMQ 团队内部加强理解与交流的途径之一。我们也在通过每一次活动进行着不断改进与迭代,希望为大家带来更愉快的参与体验,让 Open Day 成为大家与同好者建立联结的平台,成为真正对社区有意义的活动。

为流式数据存储和实时处理而生的流数据库

全托管的 MQTT 云服务,开始 180 天免费试用

推荐阅读

Python MQTT 异步框架 —— HBMQTT

本文我们将演示如何使用 Python MQTT 异步框架 - HBMQTT,轻松实现一个具备 MQTT 发布、订阅功能的异步 Demo。

MQTT 和 CoAP 在 EMQ X 世界的一次「约会」

本文将向你展示,MQTT 客户端和 CoAP 客户端,在 EMQ X World 的一次「约会」。

在树莓派上搭建智能家居网关

本文将使用 树莓派 + EMQ X Edge + EMQ X Kuiper 搭建智能家居网关,实现智能家居设备数据的边缘计算处理,减少家庭私密数据外流。