KotlinConf 2019: Asynchronous Data Streams with Kotlin Flow by Roman Elizarov
Recording brought to you by American Express. https://americanexpress.io/kotlin-jobs Kotlin Flow is a declarative mechanism for working with asynchronous data streams that builds on top of Kotlin coroutines and structured concurrency. Kotlin Flows are doing the same revolution in simplicity for data streams that suspending functions did for data values. In this talk we will discuss the challenges of working with asynchronous streams and how Kotlin Flows solve them. We will study the basics of Kotlin Flow design, see their typical usage patterns, peek behind the scenes and into some of the implementation details, checkout flow performance and see how they enable writing safe, reliable, and leak-free systems. We will also discuss how they relate to and incorporate ideas from reactive extensions and reactive streams, how they are similar and different, and how they can be used together. Resources: KotlinConf website: https://jb.gg/fyaze5 KotlinConf on Twitter: https://twitter.com/kotlinconf Kotlin website: https://jb.gg/pxrsn6 Kotlin blog: https://jb.gg/7uc7ow Kotlin on Twitter: https://twitter.com/kotlin #KotlinConf19 #Kotlin #JetBrains #KotlinFlows About the Presenter: Roman Elizarov works at JetBrains as Team Lead for Kotlin Libraries team, where he is focused on development and maintenance of multi-platform foundational libraries for Kotlin programming language. His main contribution in this role is design of Kotlin coroutines and development of Kotlin coroutines library. In 2000 Roman Elizarov had graduated from St. Petersburg ITMO and started his career as a professional software developer. During his undergraduate study he participated in International Collegiate Programming Contests (ICPC). Since 1997 and until now Roman serves as a Chief Judge of Northern Eurasia Region of ICPC. He also maintains his academic ties and now teaches a course on concurrent and distributed programming at ITMO. Roman Elizarov had worked for most of his career at Devexperts, where he designed and developed high-performance trading software for leading brokerage firms and market data delivery services that routinely handle millions of events per second. He is an expert in Java and JVM, particularly in concurrency, real-time data processing, algorithms, and performance optimizations for modern architectures.