Ben Christensen, TweetSoftware Engineer at Netflix
Biography: Ben Christensen
Ben Christensen is a software engineer on the Netflix API Platform team responsible for fault tolerance, performance, architecture and scale while enabling millions of customers to access the Netflix experience across more than 800 different device types. Specializing in Java since the 90s and through years of web and server-side development Ben has gained particular interest and skill in building maintainable, performant, high-volume, high-impact systems. Prior to Netflix, Ben was at Apple in the iTunes division making iOS apps and media available to the world.
Presentation: TweetFunctional Reactive Programming in the Netflix API
The Netflix API receives over two billion requests a day from more than 800 different devices ranging from gaming consoles like the PS3, XBox and Wii to set-top boxes, TVs and mobile devices such as Android and iOS.
As the unique demands of different devices have diverged it became clear that the API needed to allow optimizing client-server interaction. We achieve this by enabling the creation of customized service endpoints that reduce network chatter, leverage server-side processing power and decentralize the development of each endpoint so as to encourage and empower rapid innovation.
This presentation will describe how the Netflix API achieves these goals using functional reactive programming (modeled after Rx) in a polyglot Java stack. Highly concurrent service endpoints are implemented without blocking, synchronization or thread-safety concerns by using declarative functional reactive composition. Parallelism and resiliency are enabled by the underlying Hystrix fault tolerance isolation layer that fronts the dozens of distributed systems within the Netflix SOA.