Scala at LinkedIn: Distributed Computing with Norbert
Norbert is a framework written in Scala that makes it fast and easy to write asynchronous, cluster aware, message based client/server applications. Built on Apache ZooKeeper and JBoss Netty, Norbert provides out of the box support for notifications of cluster topology changes, application specific routing and load balancing, scatter/gather style APIs and partitioned workloads. Written by the Search, Network and Analytics team at LinkedIn, Norbert is open sourced under the Apache License. In this presentation we will demonstrate how to write a simple application on top of Norbert. During the demonstration, we will highlight how Scala features, such as the actor library, abstract types, self types and closures, were utilized in the creation of Norbert and how they make applications written on top of Norbert more modular, testable and robust. Finally, we will briefly how we are building mission critical applications on top of Norbert at LinkedIn, most notably our social graph engine.