Skip to content
0:00 / 0:00

#streamly#dataflow-programming#functional-programming

Streamly: Declarative Concurrency And Dataflow Programming In Haskell by Harendra Kumar #FnConf19

ConfEngine

14K subscribers • 20 videos on Hallway

YouTube
  • Recommended by 1 person: 1 in engineering communities.
  • Presented by Harendra Kumar, creator of Streamly

Intermediate. Assumes working knowledge.

2.5K views6 years ago1 recommendation

Programming languagesHaskellConcurrency and parallelismKafka and stream processing

Harendra Kumar introduces Streamly, a Haskell library for high-performance concurrent dataflow programming.

Overview: Streamly is a Haskell library for writing programs in a high level, declarative data flow programming paradigm. It provides a simple API, very close to standard Haskell lists. A program is expressed as a composition of data processing pipes, generally known as streams. Streams can be generated, merged, chained, mapped, zipped, and consumed concurrently - enabling a high level, declarative yet concurrent composition of programs. Programs can be concurrent or non-concurrent without any significant change. Concurrency is auto scaled based on consumption rate. Programmers do not have to be aware of threads, locking or synchronization to write scalable concurrent programs. Streamly provides C like performance, orders of magnitude better compared to existing streaming libraries. Motivation: Haskell has a beautiful abstraction capability. Haskell lists, several streaming and concurrency libraries are some examples of good programming abstractions. The problem is that concurrency is not handled elegantly and declaratively by these libraries. Moreover, the lack of good performance gives rise to special purpose performance centric libraries like text and bytestring creating more confusion. Streamly unifies, lists, streaming, concurrency, logic programming and reactive programming with unparalleled performance. We can finally have a unified string handling. Audience: Streamly is designed to express the full spectrum of programs. Do not think that if you are writing a small and simple program it may not be for you. It expresses a small program with the same efficiency, simplicity and elegance as a large scale concurrent application. It unifies many different aspects of special purpose libraries into a single yet simple framework. It is especially suitable for high performance and scalable backend data processing systems. If you use or plan to use any real time streaming or data flow programming frameworks including Apache Flink, Apache Spark or asynchronous/reactive programming frameworks like ReactiveX/RxJs then you may be interested in Streamly. More details: confengine.com/functional-conf-2019/proposal/12453 Conference Link: functionalconf.com

Why it's here

1 person recommends this

What people say. Recommended as a great introduction to Streamly's concurrent streaming model.

u/ysangkokin r/haskell • Recommends

Streamly: Declarative Concurrency And Dataflow Programming