KotlinConf 2018 - Implementing Raft Protocol by Coroutines and Ktor Framework by Andrii Rodionov
Recording brought to you by American Express https://americanexpress.io/kotlin-jobs We are living in an age of distributed systems. And one of the most challenging problems is consensus problem. Raft is a consensus protocol that is used in many production systems like Docker swarm, Consul, Kudu, RavenDB etc. This protocol is based on asynchronous communication between nodes in a cluster (with leader election, log replication, tolerate node failures, timeouts etc.), so we need some useful mechanisms and language features to effectively implement protocol behavior. During the talk, we briefly discuss Raft basics and then, in a code, look how part of the protocol could be implemented using coroutines and Ktor Framework. In the end, we will see in-memory key-value store based on Raft protocol that can tolerate node failures in the work. About the Presenter: Andrii Rodionov is a JUG UA leader and JavaDay UA conference organizer. Being very inspired by Kotlin language, he decided to become Kyiv Kotlin group and Kotlin Night Kyiv conference co-organizer. Andrii has a Ph.D. in computer science and works as an Associate professor at National Technical University, and as Software engineer at Wix. He is interested in Java, Kotlin, Scala languages, distributed systems, microservice architecture, and was a speaker at international and local conferences.