Silicon Valley Code Camp : October 11th and 12th 2014
Sumant is a Sr. Software Engineer at LinkedIn and a Microsoft MVP. He helps run Kafka and the related streaming infrastructure at LinkedIn. He contributes in open-source Apache Kafka and writes Kafka Truths and C++ Truths blogs. Previously he worked on reactive stream processing for Industrial IoT system in RTI.
If virtual functions in C++ imply design patterns, then C++ lambdas imply what? What does it really mean to have lambdas in C++? Guess what, it's BIG. Just like virtual functions open doors to the OO paradigm, lambdas open doors to a different paradigm--the Functional paradigm. This talk is not a praise of functional programming or some elusive lambda-based library. (Although, I'll mention one briefly that tops my list these days) Instead, the goal is to have fun while working our way through some mind-bending examples of C++14 lambdas. Beware, your brain will hurt! Bring your laptop and code the examples right along because that may be the fastest way to answer the quiz.
In this presentation (and a live demonstration) you will see why Reactive Extensions (Rx) is a powerful technology for asynchronous stream processing. RTI Data Distribution Service (DDS) will be used as the source of data and as a communication channel for asynchronous data streams. On top of DDS, we'll use Rx to subscribe, observe, project, filter, aggregate, merge, zip, and correlate one or more data streams (Observables). The live demo will be very visual as bouncing shapes of different colors will be transformed in front of you using C# lambdas, Rx.NET, and LinqPad. You will also learn about the new Rx4DDS.NET library that integrates RTI DDS with Rx.NET. Rx and DDS are a great match because both are reactive. Rx is based on the subject-observer pattern, which is quite analogous to the publish-subscribe pattern of DDS. When used together they support distributed dataflows seamlessly. If time permits, we will touch upon advanced Rx concepts such as stream of streams (IGroupedObservable) and how it captures DDS "keyed topics". The DDS applications using Rx4DDS.NET dramatically simplify concurrency to the extent that it can be simply configured. Sounds too good to be true? Listen to the talk and watch the demo.