GOTO is a vendor independent international software development conference with more that 90 top speaker and 1300 attendees. The conference cover topics such as .Net, Java, Open Source, Agile, Architecture and Design, Web, Cloud, New Languages and Processes

Ben Christensen, Software Engineer at Netflix

Ben Christensen

Biography: Ben Christensen

Ben Christensen is a software engineer on the Netflix Edge Engineering team responsible for communication between Netflix clients and its cloud services. Recently involved in open source projects such as Hystrix (https://github.com/Netflix/Hystrix and RxJava (https://github.com/ReactiveX/RxJava

Twitter: @benjchristensen

Presentation: Applying Reactive Programming with Rx

Time: Monday 11:00 - 11:50 / Location: Grand Ballroom A & B

Rarely do we have a chance to rewrite an application from scratch with the newest techniques. Generally we must work within our existing architectures evolving and refactoring years of code. This can make it seem reactive programming either can’t be introduced or doesn’t play a role.

Netflix has been doing reactive programming with RxJava in production for several years and only recently embarked on “greenfield” development efforts that are fully async. This talk will leverage the experience of introducing reactive programming into existing imperative, blocking codebases to demonstrate how it can be done and when it can make sense to do so. Not all benefits of reactive programming can be obtained without a greenfield, fully async architecture, but many can. Subjects to be covered will include the mental shift from imperative to declarative, working with blocking IO such as JDBC and RPC, service composition, debugging and unit testing.

Workshop: Building Reactive Applications at Scale

Time: Thursday 09:00 - 16:00 / Location: Gleacher Center 4

Using Netflix as a case-study and NetflixOSS components for hands-on practice, learn how to apply reactive principles to application architecture both in the "big" and the "small". Starting at the distributed systems level learn how to handle failure, adapt to changing environments and usage patterns, and iterate quickly in an always-on globally distributed system. Then we'll dive into the code level building blocks of how reactive programming patterns enable fault tolerance and scalability within an application.