Monday, July 04, 2011

TPL Dataflow Presentation


With quite good responses to my presentation about .NET Task Parallel Library (TPL) to both the office SunGard and the client BoA/ML, I am asked to give another presentation to the first meeting of SunGard Houston .NET interested group. This time I am going to add TPL Dataflow (Visual Studio Async) to the talk. There are a few good points about TPL dataflow which I am very pleased with. I am pretty sure the presentation will generate a lot of interests in the techie community of the office.

First of all, as we all know, in particular TPL did not focus on problems best expressed with agent-based models or those based on message-passing paradigms. TPL Dataflow is focused on providing building blocks for message passing and parallelizing CPU- and I/O-intensive applications with high-throughput and low-latency.


Secondly, you can actually use Rx in Task Dataflow. Rx is predominantly focused on coordination and composition of event streams with a LINQ-based API, providing a rich set of combinators for manipulating IObservable<T>s of data. You can let data flow blocks to be exposed as both observable and observers, therefore enabling direct integration of Rx library.


The implementation is extremely flexible and give the developers a lot of options. TPL Dataflow is comprised of "dataflow blocks," data structures that buffer, process, and propagate data. They can be either sources, targets, or both, in which case they're referred to as propagators, e.g.
ActionBlock, BufferBlock, BoadcastBlock, WriteOnceBlock, TransformBlock, BatchBlock, JoinBlock, and BatchedJoinBlock.

Thumbs Up to GitHub Copilot and JetBrains Resharper

Having used AI tool GitHub Copilot since 08/16/2023, I’ve realized that learning GitHub Copilot is like learning a new framework or library ...