High Performance Reactive Programming with JAVA 8 and JavaScript

High Performance = Low Latency + High Throughput. Functional Reactive Programming provides higher-level abstraction

Schedule & Enrollment
Duration: 27 study hours. Price: 395 leva
Траян Илиев - Certified Java SE 6 ProgrammerOracle® Certified Professional - Java SE 6 Programmer

Training is conducted by Trayan Iliev, Oracle® & OMG® certified software developer with 12+ years Java training experience for big international companies (VMware, Software AG, Anyoption, Comptel, Verint, i:FAO Bulgaria, Stemo, Globul/Telenor, etc.). Frequent speaker at Bulgarian Oracle® User Group (BGOUG) and Bulgarian Java User Group (BGJUG) conferences.

Project Reactor overall architecture – http://projectreactor.io/

Target audience:

Medium to expert level Java developers with practical experience in building applications with Java SE and JavaScript.

Workshop duration:

Duration of the workshop is 27 study hours in total.

Workshop Description:

The workshop provides in-depth study of reactive and high performance application programming in Java using several open-source frameworks. Main patterns and existing software implementations are discussed.

Functional reactive programing provides easy to use and composable higher-level abstraction for high-performance computing, hiding the complexities of non-blocking concurrency implementations. The main topics that will be covered are:

  1. Reactor

    Reactor design pattern

    Low latency and high throughput programming in Java. Different factors affecting performance – CPU architecture (multicore, hyperthreading), memory hierarchies (caches, predictive caching), memory access patterns (temporal, spatial, striding), Garbage Collection (serial, parallel and concurrent GC strategies, genrational GC), lock contention – uncontended vs. contended locks, false sharing. Non-blocking concurrency. Single writer designs. The LMAX Disruptor (RingBuffer) high performance inter-thread messaging library. DSL & Main APIRing Buffer, Sequence, Sequencer, Sequence Barrier, Wait Strategy, Event, EventProcessor, EventHandler, Producer. Examples and exercises. (6 study h.)

  2. combineLatest

    RxJava – Java ReactiveX (Reactive Extensions) – https://github.com/ReactiveX/RxJava/

    Reactive programming. Reactor & Proactor design patterns. Reactive Streams SpecificationPublisher, Subscriber, Subscription, Processor. Building high-performance non-blocking asynchronous applications on the JVM using Reactor project – Reactors, Dispatchers, EventRouters, Streams and Promises, Processors (RingBuffer). Reactor-Core, Reactor-Bus, Reactor-Streams and Reactor-Net APIs. Building end-to-end reactive web applications and services (REST, WebSocket) using Reactor. (8 study h.)

  3. RxJava – a Java VM implementation of ReactiveX (Reactive Extensions) – extended Observer design pattern. Practical examples and RxJava coans for self-testing. (5 study h.)

  4. RxJS – JavaScript reactive programming using Reactive Extensions. Integration with Facebook React & Google Angular 2. Practical examples for end-to-end client-server reactive programming using Java, JS, HTTP and WebSocket. (5 study h.)

  5. Inter Process Communication (IPC) with sub millisecond latency with Chronicle Queue. (3 study h.)

The workshop contains approximately 30% lecture materials and 70% lab exercises. Lectures and exercises will be conducted in parallel and will not be divided in separate sessions in order to achieve immediate reinforcement of theoretical discussions with practical examples and exercises in Java and JavaScript.

During the workshop participants will get experience using reactive programming paradigm for building high performance software in Java by solving multiple problems, and practical application of discussed patterns. The learning is conducted in small groups – up to 8 participants using problem-based methodology. During laboratory exercises there is opportunity for individual advises, as well as discussion of additional questions the participants are interested in.

.pdfSee the detailed program as PDF (in new browser tab). For more information and enrollment contact us by e-mail : office@iproduct.org