dotnext DotNext 2019 Msc (06.11.2019 — 07.11.2019)

Asynchronous streams


This talk will be dedicated to asynchronous streams in JS and C#. You will learn why asynchrony is important, how async/await has influenced modern languages and we will not forget about its common drawback. Also, we will consider differences between new asynchronous streams and existing frameworks, such as System.Reactive and RxJS.

Asynchronous iteration landed in JavaScript last year, and C# is following up with its async streams. This presentation looks at why these new asynchronous streams are useful, how they are different from existing libraries like System.Reactive and RxJS, and how to use them in your projects.

We’ll start with a conceptual overview of why asynchrony is important, and the impact that async/await has had on modern languages. Then we’ll address one of the common shortcomings of async/await: the fact that it only deals with single values.

We’ll briefly review library-based approaches for dealing with streams of asynchronous data, including the classic producer/consumer queues as well as the more modern reactive approaches. Finally, we’ll address how true pull-based asynchronous streams require language constructs and examine consuming and producing asynchronous streams in C#.

By the end of this session, you’ll be equipped to handle asynchronous streams in your projects.