When I finished playing with code at university I took my baby steps in real word working on an airline system that processed thousands of transactions per second. There was no turning back and I become hooked on creating multithreaded, high volume and latency sensitive backend services. It turned out that these require as much profiling, optimizing and GC tuning as applying basic good design practices. Right now I work at a small startup company where I help create cloud based real time data processing backend for our services. I like to explore JVM’s inner workings, GC algorithms and all things mechanical sympathy. I also believe that Java is not yet finished and I tried to prove it presenting lambda expressions on few conferences.
1h - Slides+Speech
The reactive manifesto movement promotes architecture that lets developers build applications to satisfy today’s demands of scalable, resilient and readily responsive websites and services. The cornerstone of such systems is their event driven nature. Rx java provides an interface that abstracts event delivery. It is aimed at simplifying server-side concurrency. With a set of functional operators for filtering, grouping, transforming and combining event streams Rx Java gives you powerful tools to create event driven systems. I will show you how to use this library on client and server side, how it influences application design and why this approach is superior to using futures and callbacks. I will present lessons we learned when using Rx Java in our production services; we will take a closer look at its performance characteristics and limitations. I will also show how one can use this approach to get rid of listeners and observers when interacting with various event producers (such as UI).