SlideShare a Scribd company logo
Reactive Streams and
RxJava2
Yakov Fain, Farata Systems



yfain
About myself
• Solutions Architect at Farata Systems
• Java Champion
• Latest book:

“Angular 2 Development with TypeScript”

“If I had asked people what they wanted,
they would have said faster horses”



Henry Ford

Synchronous vs asynchronous
• Synchronous programming is straightforward
• Asynchronous programming dramatically increases complexity
Challenges in async programming
• Handling failed async requests
• Chaining async calls
• The user already closed the view
• Switching threads to update UI
and more challenges
• Avoiding writing blocking code in a multi-threaded app
• Several consumers
• Composable functions
• Killing a pending Http request
Backpressure
Subscriber

Sammy
A publisher generates more data than a subscriber can process
Publisher
Examples of backpressure
• The stock price changes 100 times a second
• Accelerometer produces 50 signals a second
• Iteration through a JDBC result set (rxjava-jdbc; rxjava2-jdbc)
• A user drags the mouse to draw a curve. Can’t apply back pressure.
Reactive Apps
• The data is processed as streams
• Message-driven: notifications
• Resilient: stay alive in case of failures
• Data flows through your app’s algorithms
• Hide complexity of multi-threading
Reactive Streams
• A spec for async stream processing with non-blocking backpressure



http://www.reactive-streams.org

• Reactive Streams interfaces for JVM 



https://github.com/reactive-streams/reactive-streams-jvm
• Reactive Streams-based products: 



RxJava2, Java 9 Flow APIs, Reactor 3, Akka Stream, MongoDB, Vert.x …
Reactive Streams: Java interfaces
Reactive Streams: Java interfaces
Reactive Streams: Java interfaces
backpressure

support
Reactive Streams: Java interfaces
backpressure

support
Main RxJava2 players
• Observable or Flowable - producers of data
• Observer or Subscriber - consumers of data
• Subject or Processor - implements both producer and consumer
• Operator - en-route data transformation
• Scheduler - multi-threading support
Main Publishers and Subscribers in RxJava2
Observable

no backpressure support


public interface Observer<T> {

void onSubscribe(Disposable var1);



void onNext(T var1);



void onError(Throwable var1);



void onComplete();

}
Publisher Subscriber
Not from 

Reactive Streams
Observable

no backpressure support
Flowable

with backpressure support
public interface Observer<T> {

void onSubscribe(Disposable var1);



void onNext(T var1);



void onError(Throwable var1);



void onComplete();

}
public interface Subscriber<T> {

void onSubscribe(Subscription var1);



void onNext(T var1);



void onError(Throwable var1);



void onComplete();

}
Not from 

Reactive Streams
From 

Reactive Streams
Main publishers and subscribers in RxJava2
Publisher Subscriber
Creating an Observable
• Observable.create()
• Observable.fromArray()
• Observable.fromIterable()
• Observable.fromCallable()
• Observable.fromFuture()
• Observable.range()
• Observable.just()
Observable.create(subscriber -> {
int totalBeers = beerStock.size();
for (int i = 0; i < totalBeers; i++) {

// synchronous push
subscriber.onNext(beerStock.get(i));
}
subscriber.onComplete();
});
Observable<Beer> observableBeer = Observable.create(/* data source */);
observableBeer

.skip(1)

.take(3)

.filter(beer -> "USA".equals(beer.country))

.map(beer -> beer.name + ": $" + beer.price)

.subscribe(

beer -> System.out.println(beer),



err -> System.out.println(err),



() -> System.out.println("Streaming is complete”),



disposable -> System.out.println( 

"Someone just subscribed to the beer stream!!!”)

);

);
Observable push
O
b
s
e
r
v
e
r
Subscription
Creating an Observer and subscribing
Observable<Beer> beerData = BeerServer.getData(); // returns an Observable



Observer beerObserver = new Observer<Beer>() {



public void onSubscribe(Disposable d) {

System.out.println( " !!! Someone just subscribed to the bear stream!!! ");



// If the subscriber is less than 21 year old, cancel subscription

// d.dispose();

}



public void onNext(Beer beer) {

System.out.println(beer);

}



public void onError(Throwable throwable) {

System.err.println("In Observer.onError(): " + throwable.getMessage());

}



public void onComplete() {

System.out.println("*** The stream is over ***");

}

};



beerData

.subscribe(beerObserver); // Streaming starts here
Subscription subscription = Observable.create(new Observable.OnSubscribe<Response>() {

OkHttpClient client = new OkHttpClient();



@Override
public void call(Subscriber<? super Response> subscriber) { // invoked on subscription
try {
Response response = client.newCall( // prepare the call for future execution
new Request.Builder().url(“http://localhost:8080/beers“)
.build())
.execute(); // use enqueue() for async requests


subscriber.onNext(response);



subscriber.onComplete();


if (!response.isSuccessful()) {
subscriber.onError(new Exception(“Can’t get beers”));
}
} catch (IOException e) {
subscriber.onError(e);
}
}
})

.subscribe(...); // pass Observer; use observeOn/SubscribeOn to switch threads
Pushing HTTP responses
https://square.github.io/okhttp
Controlling the flow with request()
request(1); request(1);
Handling backpressure
Publisher Subscriber
request(1)
request(3)
…
request() is non-blocking
onNext(value1)
onNext(value2)
onNext(value3)
onNext(value4)
BackpressureStrategy.BUFFER
BackpressureStrategy.BUFFER
BackpressureStrategy.DROP
BackpressureStrategy.Drop
BackpressureStrategy.LATEST
BackpressureStrategy.Latest
Creating a Flowable
• Flowable.create()
• Flowable.fromArray()
• Flowable.fromIterable()
• Flowable.fromCallable()
• Flowable.empty()
• Flowable.range()
• Flowable.just()
Flowable.create() and
Observable.toFlowable()
myObservable

.toFlowable(BackpressureStrategy.BUFFER);
Flowable<Beer> myFlowable

.create(beerEmitter ->{…},

BackpressureStrategy.BUFFER);
Create
Convert from Observable
Requesting data from Flowable
public class FlowableRange {



static DisposableSubscriber<Integer> subscriber;



public static void main(String[] args) {



subscriber = new DisposableSubscriber<Integer>() {



public void onStart() {

request(5);



while (true){ // Emulate 1-sec processing

try {

Thread.sleep(1000);

} catch (InterruptedException e) {

e.printStackTrace();

}

request(1);

}

}



public void onNext(Integer t) {

System.out.println("processing "+ t);

if (t==8) { // just to demo unsubscribing

subscriber.dispose();

}

}



public void onError(Throwable thr) {

System.err.println("In onError(): " + thr.getMessage());


}



public void onComplete() {

System.out.println("Done");

}

};



Flowable.range(1, 10)

.subscribe(subscriber);

}

}
Demo 

1. FlowableRange

2. BeerClientFlowable
Code samples: https://github.com/yfain/rxjava2
An Operator
Observable Observable
A transforming

function
observableBeer

.filter(b -> "USA".equals(b.country))
Docs: http://reactivex.io/documentation/operators
QUIZ: What value(s) this observable emits?
Observable

.just(5, 9, 10) // emits 5, 9, 10



.filter(i -> i % 3 > 0)



.map(n -> "$" + n * 10)



.filter(s -> s.length() < 4);
Observable

.just(5, 9, 10) // emits 5, 9, 10



.filter(i -> i % 3 > 0)



.map(n -> "$" + n * 10)



.filter(s -> s.length() < 4)


.subscribe(System.out::println);
Composing observables
merge: combining observables
concat: combining observables in order
zip: combining observables of different types
flatMap
switchMap
Types of Observables
Hot Cold
Push
Produce a steam even

if no-one cares
r
Produce a stream when 

someone asks for it
✔
Hot Observables
• Mouse events
• Publishing stock prices
• An accelerometer in a smartphone
Making observables hot
Turning a cold observable into hot
ConnectableObservable<Long> numbers = (ConnectableObservable<Long>) Observable

.interval(1, TimeUnit.SECONDS) // generate seq numbers every second

.publish(); // make it hot



numbers.connect(); // creates an internal subscriber to start producing data

numbers.subscribe(n ->System.out.println("First subscriber: "+ n ));



Thread.sleep(3000);



numbers.subscribe(n ->System.out.println(" Second subscriber: "+ n ));

Demo 

HotObservable
Schedulers
Concurrency with Schedulers
• subscribeOn(strategy) - run Observable in a separate thread: 

Operations with side effects like files I/O;

Don’t hold off the UI thread

• observeOn(strategy) - run Observer in a separate thread,

Update Swing UI on the Event Dispatch Thread

Update Android UI on the Main thread
Multi-threading strategies
• Schedulers.computation() - for computations: # of threads <= # of cores
• Schedulers.io() - for long running communications; backed by a thread pool
• Schedulers.newThread() - new thread for each unit of work
• Schedulers.from(Executor) - a wrapper for Java Executor
• Schedulers.trampoline() - queues the work on the current thread
• AndroidSchedulers.mainThread() - handle data on the main thread (RxAndroid)
Switching threads
Operator1() Operator2() ObserveOn()
Observable
Subscriber
Thread 1
Thread 2
subscribeOn()
observeOn()
Multi-threaded processing with flatMap()
Operator1() Operator2() flatMap()
Observable
Subscriber
Thread 1
Observable/Thr2
Observable/Thr3
Observable/ThrN
Spawn a separate thread for each observable
…
Turning a value into

an observable
Observable.range(1, 1000)
.flatMap(n->Observable.just(n)

.subscribeOn(Schedulers.computation()))

.map(n->n*2)

.observeOn(AndroidSchedulers.mainThread())

.subscribe(myView.update());
Subscribing to each
observable on the
computation thread
Switching to the
main thread
Updating the UI
Demo 

schedulers/SubscribeOnObserveOn



ParallelStreams
Parallel operations with ParallelFlowabe
• Parallel execution of some operators

• The source sequence is dispatched into N parallel “rails”
• runOn() —-> sequential() is more efficient fork/join than flatMap()

• Each rail can spawn multiple async threads with Schedulers
Parallel Execution
int numberOfRails = 4; // can query #processors with parallelism()



ParallelFlowable

.from(Flowable.range(1, 10), numberOfRails)

.runOn(Schedulers.computation())

.map(i -> i * i)

.filter(i -> i % 3 == 0)

.sequential()

.subscribe(System.out::println);
Tasks run simultaneously on different CPUs or computers.
ParallelFlowableRange.java
Summary
• Observable: no backpressure support
• Flowable: backpressure support
• Operators can be chained
• flatmap() used for handling observable of observables
• Schedulers support multi-threading
• subscribeOn()/observeOn() - switching between threads
• ParallelFlowable - initiate parallel processing
Links
• Slides: http://bit.ly/2q3Ovt4
• Code samples: 

https://github.com/yfain/rxjava2
• Our company: faratasystems.com
• Blog: yakovfain.com
• Twitter: @yfain

Ad

Recommended

Reactive programming in Angular 2 by Yakov Fain, has 62 slides with 2644 views.This document discusses reactive programming in Angular 2 using RxJS. It introduces Observables and Observable operators like map, filter, and switchMap. It explains how to use Observables with HTTP requests, forms, and routing in Angular. Key concepts covered include creating Observables, subscribing to them, transforming streams with operators, and sharing Observables between subscribers.
Reactive programming in Angular 2
Yakov Fain
62 slides2.6K views
Reactive Thinking in Java with RxJava2 by Yakov Fain, has 77 slides with 4707 views.Yakov Fain discusses reactive programming with RxJava2. He begins by describing the challenges of asynchronous and multi-threaded programming that reactive programming addresses. He then covers key RxJava2 concepts like Observables, Operators, Backpressure, and Schedulers. The document provides examples of creating Observables and Subscribers and using various operators to transform and compose Observable streams in a reactive and functional way.
Reactive Thinking in Java with RxJava2
Yakov Fain
77 slides4.7K views
Web sockets in Angular by Yakov Fain, has 29 slides with 3765 views.This document discusses WebSockets and their use in Angular applications. It contains the following information: 1. An introduction to WebSockets, including what they are, where server push is needed, and how to use them in plain JavaScript. 2. Two ways to use WebSockets in Angular - manually creating WebSocket objects or using RxJS WebSocketSubject. 3. A code example of a WebSocket service in Angular that wraps a WebSocket object and exposes it as an Observable stream.
Web sockets in Angular
Yakov Fain
29 slides3.8K views
Reactive Thinking in Java by Yakov Fain, has 50 slides with 1613 views.The document discusses reactive programming concepts in Java using RxJava. It defines key RxJava terms like Observable, Observer, and Operator. It explains how RxJava uses asynchronous message passing with Observables that push data to Observer subscribers, unlike traditional Java APIs that use synchronous pulling of data. It provides examples of creating Observables and applying operators like map, filter, and flatMap. It also covers multi-threading in RxJava using schedulers, backpressure, and other advanced topics.
Reactive Thinking in Java
Yakov Fain
50 slides1.6K views
Intro to JavaScript by Yakov Fain, has 49 slides with 1972 views.This document provides an overview of JavaScript concepts including: - Where JavaScript can run including web browsers and JavaScript engines. - Key differences from Java like JavaScript arriving as text with no compiler and need to work across runtime environments. - Tools for debugging and developing JavaScript like Firefox's Firebug and Chrome Developer Tools. - Variables, functions, objects, and inheritance in JavaScript compared to other languages like Java. Functions can be treated as first-class objects and assigned to properties or passed as callbacks.
Intro to JavaScript
Yakov Fain
49 slides2K views
Using JHipster for generating Angular/Spring Boot apps by Yakov Fain, has 38 slides with 1500 views.The document discusses using JHipster 4 for generating Angular and Spring Boot applications. It begins with an overview of Spring Boot and Angular and demonstrates generating a basic monolithic application with them. It then introduces JHipster as a tool for generating Angular/Spring Boot projects along with best practices. The rest of the document demonstrates features of JHipster like generating entities, internationalization, and microservices architecture.
Using JHipster for generating Angular/Spring Boot apps
Yakov Fain
38 slides1.5K views
Angular2 Development for Java developers by Yakov Fain, has 66 slides with 3876 views.This document provides an overview of Angular 2 development for Java developers. It discusses key aspects of Angular 2 including components, templates, data binding, dependency injection, and routing. It also covers TypeScript and how it adds types, classes and interfaces to JavaScript. The document uses examples to demonstrate classes, interfaces, generics, and inheritance in TypeScript.
Angular2 Development for Java developers
Yakov Fain
66 slides3.9K views
Angular 2 Migration - JHipster Meetup 6 by William Marques, has 51 slides with 2659 views.This document outlines the migration process from AngularJS to Angular 2 using JHipster 4.0. It covers preparation steps, the Angular 2 ecosystem, and a detailed step-by-step migration plan, including module loaders, services, and route migration. The authors emphasize the benefits of migrating for better performance and productivity, along with various coding best practices and tools like TypeScript and Webpack.
Angular 2 Migration - JHipster Meetup 6
William Marques
51 slides2.7K views
Using JHipster for generating Angular/Spring Boot apps by Yakov Fain, has 38 slides with 1866 views.1. The document discusses using JHipster, an open source tool, to generate Angular and Spring Boot applications. It demonstrates generating both monolithic and microservices applications. 2. Key features of JHipster covered include generating entities, internationalization, and deployment options. Running and developing applications in both development and production modes is explained. 3. Examples are provided of generating sample applications using JHipster's online generator and locally installed generator. This includes reviewing the generated code and application structure.
Using JHipster for generating Angular/Spring Boot apps
Yakov Fain
38 slides1.9K views
Intro to Retrofit 2 and RxJava2 by Fabio Collini, has 46 slides with 3124 views.This document provides an introduction to Retrofit 2 and RxJava 2. It discusses how Retrofit allows turning a REST API into a Java interface and how RxJava implements reactive programming with observable sequences. It demonstrates making synchronous and asynchronous HTTP requests with Retrofit and handling the "callback hell" problem with RxJava. Operators like map, flatMap, zip and concatMap are shown to transform and combine observables. The document emphasizes that RxJava contains over 400 methods and discusses additional RxJava concepts like error handling and threading.
Intro to Retrofit 2 and RxJava2
Fabio Collini
46 slides3.1K views
Java Intro: Unit1. Hello World by Yakov Fain, has 18 slides with 2220 views.This document is a training guide for beginners learning Java programming using Eclipse IDE, referencing the textbook 'Java Programming 24-Hour Trainer' by Yakov Fain. It outlines the importance of Java, installation steps for JDK and JRE, and provides a walkthrough for creating and running a basic Java program. Additionally, it covers the features of Eclipse IDE and includes homework assignments to practice programming skills.
Java Intro: Unit1. Hello World
Yakov Fain
18 slides2.2K views
Overview of the AngularJS framework by Yakov Fain, has 58 slides with 3085 views.This document covers the fundamentals of AngularJS within the context of modern web development for Java programmers. It explains the differences between frameworks and libraries, outlines the structure of single-page applications, and provides practical examples of AngularJS features such as modules, controllers, directives, and routing. Additionally, it discusses essential tools for JavaScript development, including Node.js, npm, Yeoman, Bower, and Grunt, highlighting their roles in managing application dependencies and automating tasks.
Overview of the AngularJS framework
Yakov Fain
58 slides3.1K views
Test Driven Development with JavaFX by Hendrik Ebbers, has 64 slides with 16515 views.This document discusses test-driven development with JavaFX. It covers testing JavaFX applications at the unit, integration, and system levels. It also discusses continuous integration/continuous delivery and different tools that can be used for testing JavaFX applications, including TestFX, MarvinFX, JemmyFX, and Automaton. TestFX is highlighted as the recommended tool, with details provided on how to interact with JavaFX applications using its fluent API. The document also discusses using the view object pattern to write more readable tests and testing JavaFX applications that use DataFX or Afterburner.fx frameworks. It provides an example of using CDI to inject mocks when testing.
Test Driven Development with JavaFX
Hendrik Ebbers
64 slides16.5K views
Serverless functions with Micronaut by Alvaro Sanchez-Mariscal, has 20 slides with 1786 views.The document introduces Micronaut, a framework designed for building cloud-native microservices with efficient compile-time performance and non-blocking capabilities. It discusses features like service discovery, configuration sharing, support for serverless computing, and the ability to develop functions that can be exposed as REST endpoints or invoked remotely. Additionally, it touches upon the integration with GraalVM for optimizing performance through native image generation.
Serverless functions with Micronaut
Alvaro Sanchez-Mariscal
20 slides1.8K views
AngularJS Unit Test by Chiew Carol, has 47 slides with 876 views.The document provides a comprehensive guide on unit testing in AngularJS using Karma as the test runner and Jasmine as the testing framework. It covers installation, configuration, writing test specifications, debugging, generating coverage reports, and integrating with CI tools like Jenkins and Slack. Detailed instructions for setup and execution are included to facilitate effective testing and report generation.
AngularJS Unit Test
Chiew Carol
47 slides876 views
React state management with Redux and MobX by Darko Kukovec, has 93 slides with 2023 views.The document discusses state management in React applications using Redux and MobX, highlighting their differences and case uses. It includes a schedule for a tech conference, project examples, prerequisites, code snippets, and other resources. The presentation covers the importance of state management and handling actions in applications to maintain a seamless user experience.
React state management with Redux and MobX
Darko Kukovec
93 slides2K views
The Many Ways to Test Your React App by All Things Open, has 96 slides with 2149 views.The document discusses best practices for testing React applications, emphasizing the importance of automated testing and providing insights into methodologies like test-driven development. It outlines various types of testing such as unit, integration, and functional testing, and introduces tools and libraries—including Mocha, Jest, and Enzyme—necessary for effectively testing React components. The document also includes a bare-bones setup for testing environments and examples of testing React components with different strategies.
The Many Ways to Test Your React App
All Things Open
96 slides2.1K views
Single Page Applications with AngularJS 2.0 by Sumanth Chinthagunta, has 66 slides with 28545 views.The document outlines advancements in web development, focusing on Single Page Applications (SPAs) and various technologies, including Angular, ES6/ES7 features, and functional reactive programming. It emphasizes code organization, modular design, and the use of tools like Gulp for building and testing applications. Additionally, it explores the implementation of promises, generators, and custom elements in enhancing the functionality and maintainability of modern web applications.
Single Page Applications with AngularJS 2.0
Sumanth Chinthagunta
66 slides28.5K views
Mobx for Dummies - Yauheni Nikanowich - React Warsaw #5 by Marcin Mieszek, has 22 slides with 1133 views.MobX is a state management library that makes state reactive by making it observable. It works well with React by re-rendering components when the observable state changes. MobX adds observable capabilities to existing data structures like objects and arrays. Components can be made reactive by using the @observer decorator, which forces re-rendering when observable data changes. Actions are used to explicitly define state modifications and provide debugging information. Computed values automatically re-calculate when dependencies change. MobX includes tools for visualizing component re-rendering and state changes.
Mobx for Dummies - Yauheni Nikanowich - React Warsaw #5
Marcin Mieszek
22 slides1.1K views
Spring Boot by Jiayun Zhou, has 110 slides with 2726 views.This document provides an overview of Spring Boot and some of its key features. It discusses the origins and modules of Spring, how Spring Boot simplifies configuration and dependency management. It then covers examples of building Spring Boot applications that connect to a SQL database, use RabbitMQ for messaging, and schedule and run asynchronous tasks.
Spring Boot
Jiayun Zhou
110 slides2.7K views
Spring boot Introduction by Jeevesh Pandey, has 26 slides with 4286 views.The document provides an overview of Spring Boot, detailing its key features such as rapid prototyping, dependency management, and production-ready capabilities without the need for extensive configuration. It highlights the framework's ease of use, the support for various build tools like Gradle and Maven, and its integration with Spring Data libraries. Additionally, examples of setting up applications, managing profiles, and utilizing built-in features such as security and health checks are discussed.
Spring boot Introduction
Jeevesh Pandey
26 slides4.3K views
Angular Weekend by Troy Miles, has 164 slides with 1186 views.The document outlines a two-day workshop on Angular, taught by Troy Miles, focusing on various aspects of modern web development using Angular, including its CLI, TypeScript, services, and more. It details practical installation steps for necessary tools like npm, Angular CLI, and Firebase, alongside explanations of package management with npm and building applications with Webpack. Additionally, it covers critical JavaScript concepts, coding practices, and key features of Angular, including its structure, modules, decorators, and metadata.
Angular Weekend
Troy Miles
164 slides1.2K views
Angular2 for Beginners by Oswald Campesato, has 45 slides with 1042 views.The document discusses features of Angular 2, highlighting its performance improvements, component-based architecture, and the use of TypeScript for development. It explains key concepts such as data binding, dependency injection, and compares Angular 2 to its predecessor, Angular 1.x. Additionally, it provides guidance on setting up Angular 2 applications, using TypeScript, and offers resources for further learning and development.
Angular2 for Beginners
Oswald Campesato
45 slides1K views
Reactive microservices with Micronaut - Greach 2018 by Alvaro Sanchez-Mariscal, has 67 slides with 14649 views.The document introduces Micronaut, a lightweight framework designed for building reactive microservices and cloud applications, emphasizing its compile-time dependency injection and performance efficiency. It covers features such as bean management, AOP, reactive programming, and serverless function support, alongside practical examples of HTTP clients and routing. The document also highlights the framework's minimal resource consumption compared to alternatives like Spring and Grails.
Reactive microservices with Micronaut - Greach 2018
Alvaro Sanchez-Mariscal
67 slides14.6K views
Angular beans by Bessem Hmidi, has 41 slides with 5097 views.This document introduces AngularBeans, which aims to integrate AngularJS with Java EE backends using CDI. Some key points: - AngularBeans allows defining Angular services using CDI beans, and enables features like dependency injection, JSON-RPC calls, and real-time capabilities between the frontend and backend. - It supports concepts of single-page applications and thin server architectures. AngularBeans services can make HTTP requests, handle events, and communicate over websockets. - Examples show how to create an AngularBean that exposes methods to the frontend, handle requests and return responses, access the backend via JSON-RPC calls, and implement real-time functionality using events and websockets.
Angular beans
Bessem Hmidi
41 slides5.1K views
Angular js 2 by Ran Wahle, has 47 slides with 966 views.AngularJs 2.0 introduces components as the fundamental building blocks, replacing directives. The presentation covers getting started with AngularJs 2.0, including dependencies, configuration, components, data binding, services, routing and migration from Angular 1. It emphasizes that Angular 2 is a rewrite built on newer standards to improve performance and reduce opinionation. Migration involves componentizing the application and using an upgrade adapter to support a hybrid Angular 1 and 2 app.
Angular js 2
Ran Wahle
47 slides966 views
Introduction to Spring Boot by Trey Howard, has 17 slides with 712 views.Spring Boot makes it easier to create Spring-based applications and services. It removes boilerplate configuration and provides opinionated defaults to simplify setup of common Spring and related technologies. Some benefits include embedded servers reducing complexity, autoconfiguration that wires components together, and starter dependencies that add common libraries. Spring Boot helps create production-ready Spring applications with less effort.
Introduction to Spring Boot
Trey Howard
17 slides712 views
Play Framework workshop: full stack java web app by Andrew Skiba, has 17 slides with 5298 views.The document outlines the agenda and steps for a Play Framework workshop held in January 2014 in Tel Aviv, focusing on both Java and Scala applications. It includes detailed hands-on tasks related to building a web application, integrating Twitter Bootstrap, implementing a YouTube search feature, and using WebSocket for video playback. The workshop aims to teach developers about Play Framework's web application structure, RESTful APIs, and real-time data flow using Akka actors.
Play Framework workshop: full stack java web app
Andrew Skiba
17 slides5.3K views
Live chym kysubrse vs toidicodedao by Huy Hoàng Phạm, has 9 slides with 5475 views.Tài liệu trình bày về nghề Bridge System Engineer (BRSE), bao gồm khái niệm, lý do lựa chọn, hướng đi, đối tượng phù hợp, thời điểm bắt đầu và nơi làm việc. BRSE là cầu nối giữa khách hàng và nhóm offshore, yêu cầu kỹ năng lập trình, tiếng Nhật và kỹ năng mềm. Có nhiều cơ hội cho BRSE tại Nhật Bản với mức lương từ 800 đến 5000 USD/tháng tùy theo vị trí và kinh nghiệm.
Live chym kysubrse vs toidicodedao
Huy Hoàng Phạm
9 slides5.5K views
Luận văn tìm hiểu Spring by An Nguyen, has 93 slides with 8087 views.Luận văn này nghiên cứu về framework Spring và xây dựng ứng dụng quản lý nhạc phía client để giải quyết các vấn đề liên quan đến tỷ lệ thất bại cao trong các dự án phần mềm do sự phụ thuộc và chồng chéo giữa các thành phần. Tài liệu đề cập đến việc tạo ra các thành phần độc lập, dễ tái sử dụng và giới thiệu các công nghệ hiện tại như JMS, MongoDB, AngularJS, Bootstrap, trong quá trình phát triển hệ thống. Ứng dụng quản lý nhạc được thiết kế với hai module chính: module client và module server.
Luận văn tìm hiểu Spring
An Nguyen
93 slides8.1K views
Ad

More Related Content

What's hot (20)

Using JHipster for generating Angular/Spring Boot apps by Yakov Fain, has 38 slides with 1866 views.1. The document discusses using JHipster, an open source tool, to generate Angular and Spring Boot applications. It demonstrates generating both monolithic and microservices applications. 2. Key features of JHipster covered include generating entities, internationalization, and deployment options. Running and developing applications in both development and production modes is explained. 3. Examples are provided of generating sample applications using JHipster's online generator and locally installed generator. This includes reviewing the generated code and application structure.
Using JHipster for generating Angular/Spring Boot apps
Yakov Fain
38 slides1.9K views
Intro to Retrofit 2 and RxJava2 by Fabio Collini, has 46 slides with 3124 views.This document provides an introduction to Retrofit 2 and RxJava 2. It discusses how Retrofit allows turning a REST API into a Java interface and how RxJava implements reactive programming with observable sequences. It demonstrates making synchronous and asynchronous HTTP requests with Retrofit and handling the "callback hell" problem with RxJava. Operators like map, flatMap, zip and concatMap are shown to transform and combine observables. The document emphasizes that RxJava contains over 400 methods and discusses additional RxJava concepts like error handling and threading.
Intro to Retrofit 2 and RxJava2
Fabio Collini
46 slides3.1K views
Java Intro: Unit1. Hello World by Yakov Fain, has 18 slides with 2220 views.This document is a training guide for beginners learning Java programming using Eclipse IDE, referencing the textbook 'Java Programming 24-Hour Trainer' by Yakov Fain. It outlines the importance of Java, installation steps for JDK and JRE, and provides a walkthrough for creating and running a basic Java program. Additionally, it covers the features of Eclipse IDE and includes homework assignments to practice programming skills.
Java Intro: Unit1. Hello World
Yakov Fain
18 slides2.2K views
Overview of the AngularJS framework by Yakov Fain, has 58 slides with 3085 views.This document covers the fundamentals of AngularJS within the context of modern web development for Java programmers. It explains the differences between frameworks and libraries, outlines the structure of single-page applications, and provides practical examples of AngularJS features such as modules, controllers, directives, and routing. Additionally, it discusses essential tools for JavaScript development, including Node.js, npm, Yeoman, Bower, and Grunt, highlighting their roles in managing application dependencies and automating tasks.
Overview of the AngularJS framework
Yakov Fain
58 slides3.1K views
Test Driven Development with JavaFX by Hendrik Ebbers, has 64 slides with 16515 views.This document discusses test-driven development with JavaFX. It covers testing JavaFX applications at the unit, integration, and system levels. It also discusses continuous integration/continuous delivery and different tools that can be used for testing JavaFX applications, including TestFX, MarvinFX, JemmyFX, and Automaton. TestFX is highlighted as the recommended tool, with details provided on how to interact with JavaFX applications using its fluent API. The document also discusses using the view object pattern to write more readable tests and testing JavaFX applications that use DataFX or Afterburner.fx frameworks. It provides an example of using CDI to inject mocks when testing.
Test Driven Development with JavaFX
Hendrik Ebbers
64 slides16.5K views
Serverless functions with Micronaut by Alvaro Sanchez-Mariscal, has 20 slides with 1786 views.The document introduces Micronaut, a framework designed for building cloud-native microservices with efficient compile-time performance and non-blocking capabilities. It discusses features like service discovery, configuration sharing, support for serverless computing, and the ability to develop functions that can be exposed as REST endpoints or invoked remotely. Additionally, it touches upon the integration with GraalVM for optimizing performance through native image generation.
Serverless functions with Micronaut
Alvaro Sanchez-Mariscal
20 slides1.8K views
AngularJS Unit Test by Chiew Carol, has 47 slides with 876 views.The document provides a comprehensive guide on unit testing in AngularJS using Karma as the test runner and Jasmine as the testing framework. It covers installation, configuration, writing test specifications, debugging, generating coverage reports, and integrating with CI tools like Jenkins and Slack. Detailed instructions for setup and execution are included to facilitate effective testing and report generation.
AngularJS Unit Test
Chiew Carol
47 slides876 views
React state management with Redux and MobX by Darko Kukovec, has 93 slides with 2023 views.The document discusses state management in React applications using Redux and MobX, highlighting their differences and case uses. It includes a schedule for a tech conference, project examples, prerequisites, code snippets, and other resources. The presentation covers the importance of state management and handling actions in applications to maintain a seamless user experience.
React state management with Redux and MobX
Darko Kukovec
93 slides2K views
The Many Ways to Test Your React App by All Things Open, has 96 slides with 2149 views.The document discusses best practices for testing React applications, emphasizing the importance of automated testing and providing insights into methodologies like test-driven development. It outlines various types of testing such as unit, integration, and functional testing, and introduces tools and libraries—including Mocha, Jest, and Enzyme—necessary for effectively testing React components. The document also includes a bare-bones setup for testing environments and examples of testing React components with different strategies.
The Many Ways to Test Your React App
All Things Open
96 slides2.1K views
Single Page Applications with AngularJS 2.0 by Sumanth Chinthagunta, has 66 slides with 28545 views.The document outlines advancements in web development, focusing on Single Page Applications (SPAs) and various technologies, including Angular, ES6/ES7 features, and functional reactive programming. It emphasizes code organization, modular design, and the use of tools like Gulp for building and testing applications. Additionally, it explores the implementation of promises, generators, and custom elements in enhancing the functionality and maintainability of modern web applications.
Single Page Applications with AngularJS 2.0
Sumanth Chinthagunta
66 slides28.5K views
Mobx for Dummies - Yauheni Nikanowich - React Warsaw #5 by Marcin Mieszek, has 22 slides with 1133 views.MobX is a state management library that makes state reactive by making it observable. It works well with React by re-rendering components when the observable state changes. MobX adds observable capabilities to existing data structures like objects and arrays. Components can be made reactive by using the @observer decorator, which forces re-rendering when observable data changes. Actions are used to explicitly define state modifications and provide debugging information. Computed values automatically re-calculate when dependencies change. MobX includes tools for visualizing component re-rendering and state changes.
Mobx for Dummies - Yauheni Nikanowich - React Warsaw #5
Marcin Mieszek
22 slides1.1K views
Spring Boot by Jiayun Zhou, has 110 slides with 2726 views.This document provides an overview of Spring Boot and some of its key features. It discusses the origins and modules of Spring, how Spring Boot simplifies configuration and dependency management. It then covers examples of building Spring Boot applications that connect to a SQL database, use RabbitMQ for messaging, and schedule and run asynchronous tasks.
Spring Boot
Jiayun Zhou
110 slides2.7K views
Spring boot Introduction by Jeevesh Pandey, has 26 slides with 4286 views.The document provides an overview of Spring Boot, detailing its key features such as rapid prototyping, dependency management, and production-ready capabilities without the need for extensive configuration. It highlights the framework's ease of use, the support for various build tools like Gradle and Maven, and its integration with Spring Data libraries. Additionally, examples of setting up applications, managing profiles, and utilizing built-in features such as security and health checks are discussed.
Spring boot Introduction
Jeevesh Pandey
26 slides4.3K views
Angular Weekend by Troy Miles, has 164 slides with 1186 views.The document outlines a two-day workshop on Angular, taught by Troy Miles, focusing on various aspects of modern web development using Angular, including its CLI, TypeScript, services, and more. It details practical installation steps for necessary tools like npm, Angular CLI, and Firebase, alongside explanations of package management with npm and building applications with Webpack. Additionally, it covers critical JavaScript concepts, coding practices, and key features of Angular, including its structure, modules, decorators, and metadata.
Angular Weekend
Troy Miles
164 slides1.2K views
Angular2 for Beginners by Oswald Campesato, has 45 slides with 1042 views.The document discusses features of Angular 2, highlighting its performance improvements, component-based architecture, and the use of TypeScript for development. It explains key concepts such as data binding, dependency injection, and compares Angular 2 to its predecessor, Angular 1.x. Additionally, it provides guidance on setting up Angular 2 applications, using TypeScript, and offers resources for further learning and development.
Angular2 for Beginners
Oswald Campesato
45 slides1K views
Reactive microservices with Micronaut - Greach 2018 by Alvaro Sanchez-Mariscal, has 67 slides with 14649 views.The document introduces Micronaut, a lightweight framework designed for building reactive microservices and cloud applications, emphasizing its compile-time dependency injection and performance efficiency. It covers features such as bean management, AOP, reactive programming, and serverless function support, alongside practical examples of HTTP clients and routing. The document also highlights the framework's minimal resource consumption compared to alternatives like Spring and Grails.
Reactive microservices with Micronaut - Greach 2018
Alvaro Sanchez-Mariscal
67 slides14.6K views
Angular beans by Bessem Hmidi, has 41 slides with 5097 views.This document introduces AngularBeans, which aims to integrate AngularJS with Java EE backends using CDI. Some key points: - AngularBeans allows defining Angular services using CDI beans, and enables features like dependency injection, JSON-RPC calls, and real-time capabilities between the frontend and backend. - It supports concepts of single-page applications and thin server architectures. AngularBeans services can make HTTP requests, handle events, and communicate over websockets. - Examples show how to create an AngularBean that exposes methods to the frontend, handle requests and return responses, access the backend via JSON-RPC calls, and implement real-time functionality using events and websockets.
Angular beans
Bessem Hmidi
41 slides5.1K views
Angular js 2 by Ran Wahle, has 47 slides with 966 views.AngularJs 2.0 introduces components as the fundamental building blocks, replacing directives. The presentation covers getting started with AngularJs 2.0, including dependencies, configuration, components, data binding, services, routing and migration from Angular 1. It emphasizes that Angular 2 is a rewrite built on newer standards to improve performance and reduce opinionation. Migration involves componentizing the application and using an upgrade adapter to support a hybrid Angular 1 and 2 app.
Angular js 2
Ran Wahle
47 slides966 views
Introduction to Spring Boot by Trey Howard, has 17 slides with 712 views.Spring Boot makes it easier to create Spring-based applications and services. It removes boilerplate configuration and provides opinionated defaults to simplify setup of common Spring and related technologies. Some benefits include embedded servers reducing complexity, autoconfiguration that wires components together, and starter dependencies that add common libraries. Spring Boot helps create production-ready Spring applications with less effort.
Introduction to Spring Boot
Trey Howard
17 slides712 views
Play Framework workshop: full stack java web app by Andrew Skiba, has 17 slides with 5298 views.The document outlines the agenda and steps for a Play Framework workshop held in January 2014 in Tel Aviv, focusing on both Java and Scala applications. It includes detailed hands-on tasks related to building a web application, integrating Twitter Bootstrap, implementing a YouTube search feature, and using WebSocket for video playback. The workshop aims to teach developers about Play Framework's web application structure, RESTful APIs, and real-time data flow using Akka actors.
Play Framework workshop: full stack java web app
Andrew Skiba
17 slides5.3K views

Viewers also liked (12)

Live chym kysubrse vs toidicodedao by Huy Hoàng Phạm, has 9 slides with 5475 views.Tài liệu trình bày về nghề Bridge System Engineer (BRSE), bao gồm khái niệm, lý do lựa chọn, hướng đi, đối tượng phù hợp, thời điểm bắt đầu và nơi làm việc. BRSE là cầu nối giữa khách hàng và nhóm offshore, yêu cầu kỹ năng lập trình, tiếng Nhật và kỹ năng mềm. Có nhiều cơ hội cho BRSE tại Nhật Bản với mức lương từ 800 đến 5000 USD/tháng tùy theo vị trí và kinh nghiệm.
Live chym kysubrse vs toidicodedao
Huy Hoàng Phạm
9 slides5.5K views
Luận văn tìm hiểu Spring by An Nguyen, has 93 slides with 8087 views.Luận văn này nghiên cứu về framework Spring và xây dựng ứng dụng quản lý nhạc phía client để giải quyết các vấn đề liên quan đến tỷ lệ thất bại cao trong các dự án phần mềm do sự phụ thuộc và chồng chéo giữa các thành phần. Tài liệu đề cập đến việc tạo ra các thành phần độc lập, dễ tái sử dụng và giới thiệu các công nghệ hiện tại như JMS, MongoDB, AngularJS, Bootstrap, trong quá trình phát triển hệ thống. Ứng dụng quản lý nhạc được thiết kế với hai module chính: module client và module server.
Luận văn tìm hiểu Spring
An Nguyen
93 slides8.1K views
Sinh viên IT học và làm gì để không thất nghiệp by Huy Hoàng Phạm, has 31 slides with 5657 views.Tài liệu chia sẻ kinh nghiệm và hướng dẫn tìm kiếm việc làm trong ngành công nghệ thông tin, từ cách viết CV đến phỏng vấn. Nó bao gồm những yếu tố quan trọng như kỹ năng cần có, tìm hiểu thị trường và chuẩn bị cho cuộc phỏng vấn. Người viết cũng nhấn mạnh tầm quan trọng của việc thực hành và tích lũy kinh nghiệm qua các dự án thực tế.
Sinh viên IT học và làm gì để không thất nghiệp
Huy Hoàng Phạm
31 slides5.7K views
Lap trinh java hieu qua by Lê Anh, has 58 slides with 1125 views.Tài liệu cung cấp các quy tắc và hướng dẫn về lập trình Java, bao gồm hiệu suất của ArrayList và LinkedList, cách sử dụng các phương pháp static factory, builder cho các lớp với nhiều tham số, cách xây dựng singleton bằng enum, và các quy tắc để viết hàm equals. Ngoài ra, nó cũng đề cập đến các vấn đề liên quan đến garbage collection, việc tránh sử dụng finalizers, và các lưu ý khi viết hàm equals để đảm bảo tính nhất quán và chính xác. Các ví dụ minh họa và phân tích chi tiết giúp làm rõ các quy tắc trong lập trình Java.
Lap trinh java hieu qua
Lê Anh
58 slides1.1K views
Từ Gà Đến Pro Git và GitHub trong 60 phút by Huy Hoàng Phạm, has 19 slides with 6406 views.Tài liệu cung cấp một cái nhìn tổng quan về Git và GitHub, từ cơ bản đến nâng cao, bao gồm cách cài đặt, tạo repository, thực hiện các thao tác cơ bản và nâng cao như branch, merge, và conflict resolving. Nó cũng giải thích về version control và lịch sử của Git cùng với cách thức hoạt động của GitHub. Cuối cùng, tài liệu khuyến nghị các nguồn tài liệu bổ sung để tìm hiểu sâu hơn.
Từ Gà Đến Pro Git và GitHub trong 60 phút
Huy Hoàng Phạm
19 slides6.4K views
Spring mvc by Ba Big, has 23 slides with 2442 views.Tài liệu cung cấp hướng dẫn chi tiết về lập trình Java Web sử dụng Spring MVC và JSP, bao gồm các mô-đun chính của Spring Framework, kiến trúc MVC và các khái niệm liên quan như IoC, DI. Nó giải thích cách cấu hình DispatcherServlet và xử lý các yêu cầu HTTP trong ứng dụng web. Tài liệu nhấn mạnh lợi ích của việc sử dụng Spring trong phát triển ứng dụng web nhờ tính linh hoạt, dễ bảo trì và tích hợp tốt với các framework khác.
Spring mvc
Ba Big
23 slides2.4K views
Spring mvc by nagarajupatangay, has 7 slides with 731 views.The Spring MVC framework uses the model-view-controller (MVC) architecture. It features a DispatcherServlet that handles requests and responses and relies on controllers to process user input and build the model data before passing it to the view for rendering. Configuration involves mapping the DispatcherServlet to URLs in web.xml and defining controllers with annotations and handler methods. Spring Security integrates with Spring MVC to add authentication and authorization for specific URLs specified in the spring-security.xml configuration file.
Spring mvc
nagarajupatangay
7 slides731 views
Từ Sinh Viên IT tới Lập Trình Viên by Huy Hoàng Phạm, has 22 slides with 6276 views.Tài liệu giới thiệu về hành trình từ sinh viên IT trở thành lập trình viên, nhấn mạnh kiến thức, kỹ năng cứng và mềm cần thiết để tìm việc. Nó bao gồm việc xác định nhu cầu thị trường, viết CV, phỏng vấn, và tầm quan trọng của tự học và xây dựng mạng lưới. Tác giả cũng chia sẻ liên hệ để kết nối và quảng bá sách của mình.
Từ Sinh Viên IT tới Lập Trình Viên
Huy Hoàng Phạm
22 slides6.3K views
Hành trình trở thành web đì ve lốp pơ by Huy Hoàng Phạm, has 20 slides with 45073 views.Tài liệu trình bày hành trình trở thành web developer, bao gồm ba hướng chính là front-end, back-end và full-stack, cùng với lộ trình học tập và kinh nghiệm nghề nghiệp của hai nhân vật là Toidicodedao và Codeaholicguy. Nó cũng cung cấp thông tin về các ngôn ngữ lập trình phổ biến, công cụ và tài liệu học cần thiết, cũng như những câu hỏi thường gặp khi bắt đầu sự nghiệp trong lĩnh vực phát triển web. Cuối cùng, tài liệu khuyến khích việc tự học và tiếp tục nâng cao kiến thức trong ngành.
Hành trình trở thành web đì ve lốp pơ
Huy Hoàng Phạm
20 slides45.1K views
Effective Java by Brice Argenson, has 55 slides with 4303 views.Effective Java is a book by Joshua Bloch that provides best practices for writing effective Java code. It covers topics like object creation, classes and interfaces, methods, and general programming. The book recommends favoring composition over inheritance and static factory methods over constructors. It also advises avoiding unnecessary objects and using defensive copying when accepting mutable parameters. Effective Java provides many code examples to illustrate good and bad programming techniques.
Effective Java
Brice Argenson
55 slides4.3K views
Effective java by Emprovise, has 119 slides with 2430 views.The document provides guidelines for implementing common object-oriented methods in Java, such as equals(), hashCode(), and constructors, to ensure they behave properly. Some key points discussed include: when to override equals() and how to ensure it obeys the general contract; how to implement hashCode() whenever equals() is overridden; using static factory methods or builders instead of constructors when there are many parameters; and avoiding finalizers due to performance and reliability issues. Immutable classes, singletons, and non-instantiability are also addressed.
Effective java
Emprovise
119 slides2.4K views
Ad

Similar to Reactive Streams and RxJava2 (20)

Reactive Programming in Java and Spring Framework 5 by Richard Langlois P. Eng., has 65 slides with 1739 views.This document provides an overview of reactive programming in Java and Spring 5. It discusses reactive programming concepts like reactive streams specification, Reactor library, and operators. It also covers how to build reactive applications with Spring WebFlux, including creating reactive controllers, routing with functional endpoints, using WebClient for HTTP requests, and testing with WebTestClient.
Reactive Programming in Java and Spring Framework 5
Richard Langlois P. Eng.
65 slides1.7K views
Journey into Reactive Streams and Akka Streams by Kevin Webber, has 52 slides with 1592 views.The document provides an overview of stream processing using reactive streams and Akka Streams, outlining key concepts such as the challenges of stream processing, the importance of back pressure, and the specifications of reactive streams. It details how Akka Streams allows for asynchronous processing and flow control, including various components like sources, sinks, and flows. Additionally, the document compares reactive streams with Java 8 streams and includes resources for further exploration.
Journey into Reactive Streams and Akka Streams
Kevin Webber
52 slides1.6K views
Reactive Card Magic: Understanding Spring WebFlux and Project Reactor by VMware Tanzu, has 68 slides with 3774 views.The document presents an overview of reactive programming and Spring WebFlux, focusing on its non-blocking architecture designed to handle high client demand. It covers concepts such as reactive systems, project reactor, and key features of Spring WebFlux, alongside code examples for implementing a reactive card magic application. Resources for further reading and related projects are also provided.
Reactive Card Magic: Understanding Spring WebFlux and Project Reactor
VMware Tanzu
68 slides3.8K views
Building Scalable Stateless Applications with RxJava by Rick Warren, has 38 slides with 7589 views.The document discusses building scalable stateless applications using RxJava, highlighting its use of observables for handling data sequences and supporting asynchronous operations. It addresses common challenges such as streaming queries and rate-limited APIs, providing insights into how RxJava can enhance application efficiency. Additionally, it covers implementation techniques and examples, especially in relation to JDBC operations and concurrency management.
Building Scalable Stateless Applications with RxJava
Rick Warren
38 slides7.6K views
Realtime Statistics based on Apache Storm and RocketMQ by Xin Wang, has 17 slides with 1978 views.This document discusses using Apache Storm and RocketMQ for real-time statistics. It begins with an overview of the streaming ecosystem and components. It then describes challenges with stateful statistics and introduces Alien, an open-source middleware for handling stateful event counting. The document concludes with best practices for Storm performance and data hot points.
Realtime Statistics based on Apache Storm and RocketMQ
Xin Wang
17 slides2K views
Springone2gx 2014 Reactive Streams and Reactor by Stéphane Maldini, has 75 slides with 5664 views.The document discusses the principles and applications of reactive programming, focusing on Reactor, a reactive library, and the Reactive Streams standard. It emphasizes the importance of asynchronous, fault-tolerant, and scalable systems while addressing common issues like latency and service interaction. The content covers mechanisms such as event-driven architectures, message passing, and stream processing in both Reactor and other technologies like Java 8 and RxJava.
Springone2gx 2014 Reactive Streams and Reactor
Stéphane Maldini
75 slides5.7K views
Advanced Stream Processing with Flink and Pulsar - Pulsar Summit NA 2021 Keynote by StreamNative, has 31 slides with 287 views.The document discusses the integration of Apache Flink and Apache Pulsar for advanced stream processing, highlighting their capabilities in real-time data analytics, stateful functions, and unified batch-streaming processing. It emphasizes the importance of efficient data architecture and features such as exactly-once processing guarantees and support for event-time through watermarks. The collaboration between StreamNative and Ververica aims to enhance the connector for improved performance and features in complex workloads.
Advanced Stream Processing with Flink and Pulsar - Pulsar Summit NA 2021 Keynote
StreamNative
31 slides287 views
Reactive database access with Slick3 by takezoe, has 32 slides with 5242 views.The document discusses Reactive Slick, a new version of the Slick database access library for Scala that provides reactive capabilities. It allows parallel database execution and streaming of large query results using Reactive Streams. Reactive Slick is suitable for composite database tasks, combining async tasks, and processing large datasets through reactive streams.
Reactive database access with Slick3
takezoe
32 slides5.2K views
RxJS In-Depth - AngularConnect 2015 by Ben Lesh, has 79 slides with 3784 views.The document discusses the evolution and features of RxJS, particularly the transition to RxJS 5.0.0-alpha, emphasizing community contributions and goals like improved performance and debugging. It contrasts observables with promises, highlighting the dynamic and lazy nature of observables, their creation, and methods of error handling and operator functionalities. The document also addresses potential pitfalls in using RxJS while encouraging user feedback and corrections.
RxJS In-Depth - AngularConnect 2015
Ben Lesh
79 slides3.8K views
Functional reactive programming by Araf Karsh Hamid, has 41 slides with 1738 views.This document discusses functional reactive programming and RxJava. It begins with an overview of functional reactive programming principles like being responsive, resilient, elastic and message-driven. It then covers architectural styles like hexagonal architecture and onion architecture. The rest of the document dives deeper into RxJava concepts like Observables, Observers, Operators, and Schedulers. It provides code examples to demonstrate merging, filtering and transforming streams of data asynchronously using RxJava.
Functional reactive programming
Araf Karsh Hamid
41 slides1.7K views
Reactive systems by Naresh Chintalcheru, has 51 slides with 272 views.This document discusses reactive systems and programming. It begins with an introduction to reactive systems and programming, explaining the difference between the two. It then discusses why reactive systems are useful, covering topics like efficient resource utilization. The document goes on to explain key concepts like observables, backpressure, and reactive libraries. It provides examples of reactive programming with Spring Reactor and reactive data access with Couchbase. Overall, the document provides a high-level overview of reactive systems and programming concepts.
Reactive systems
Naresh Chintalcheru
51 slides272 views
Reactive Streams - László van den Hoek by RubiX BV, has 42 slides with 175 views.This document provides an overview of reactive programming concepts including Reactive Streams and implementations like Akka and Akka Streams. It discusses: - Non-blocking processing with asynchronous event loops and back pressure to prevent OutOfMemoryErrors. - Use cases for Reactive Streams like managing uneven producer/consumer rates, ordering requirements, and efficient resource usage. - Key aspects of Reactive Streams including the Publisher, Subscriber, and Subscription interfaces. - How Akka implements the actor model for building concurrent, distributed applications and provides features like ordered message delivery, location transparency, and high-level components. - How Akka Streams implements Reactive Streams for building data pipelines
Reactive Streams - László van den Hoek
RubiX BV
42 slides175 views
Reactive Java: Promises and Streams with Reakt (JavaOne Talk 2016) by Rick Hightower, has 79 slides with 783 views.Reakt is a general-purpose library for asynchronous programming in Java that adopts JavaScript-style promises to improve callback coordination and stream handling. It focuses on providing a lambda-friendly API for managing complex asynchronous calls while ensuring compatibility with various actor systems and event-driven architectures. The library is open-source and aims to simplify the interface for asynchronous programming, making it easier for developers to handle async results and callbacks.
Reactive Java: Promises and Streams with Reakt (JavaOne Talk 2016)
Rick Hightower
79 slides783 views
Reactive Java: Promises and Streams with Reakt (JavaOne talk 2016) by Rick Hightower, has 79 slides with 520 views.Reakt is a general-purpose library for callback coordination and streams in Java, designed to adapt JavaScript-style promises for multi-threaded environments. It aims to facilitate asynchronous programming through easy-to-use, lambda-friendly APIs, while addressing complexities such as error handling and coordination of multiple async calls. The library is open-source and integrates with various existing tools and frameworks like Vert.x and Akka, continually evolving to simplify its interface and enhance functionality.
Reactive Java: Promises and Streams with Reakt (JavaOne talk 2016)
Rick Hightower
79 slides520 views
Reactive Programming in Java 8 with Rx-Java by Kasun Indrasiri, has 36 slides with 30263 views.Reactive programming with Rx-Java allows building responsive systems that can handle varying workloads and failures. It promotes asynchronous and non-blocking code using observable sequences and operators. Rx-Java was created at Netflix to address issues like network chattiness and callback hell in their API. It transforms callback-based code into declarative pipelines. Key concepts are Observables that emit notifications, Operators that transform Observables, and Subscribers that receive emitted items. Rx-Java gained popularity due to its support for concurrency, error handling, and composability.
Reactive Programming in Java 8 with Rx-Java
Kasun Indrasiri
36 slides30.3K views
Fast Streaming into Clickhouse with Apache Pulsar by Timothy Spann, has 53 slides with 387 views.The document outlines the use of Apache Pulsar as a cloud-native event-streaming platform, emphasizing its scalability, multi-tenancy, and integration capabilities with systems like ClickHouse. It details the architecture of Pulsar, including its producer, consumer, and subscription mechanisms, while also showcasing how to implement data ingestion and processing through example code snippets. Key takeaways highlight the speed of ClickHouse for handling streaming data and the advantages of using Pulsar for event-based streaming and storage solutions.
Fast Streaming into Clickhouse with Apache Pulsar
Timothy Spann
53 slides387 views
Reactive Stream Processing with Akka Streams by Konrad Malawski, has 123 slides with 14262 views.This document provides an overview of Konrad Malawski's presentation on reactive stream processing with Akka Streams. The presentation covers Reactive Streams concepts like back pressure, the Reactive Streams specification and protocol, and how Akka Streams implements reactive stream processing using concepts like linear flows, flow graphs, and integration with Akka actors. It also discusses future plans for Akka Streams including API stabilization, improved testability, and potential features like visualizing flow graphs and distributing computation graphs.
Reactive Stream Processing with Akka Streams
Konrad Malawski
123 slides14.3K views
Troubleshooting Kafka's socket server: from incident to resolution by Joel Koshy, has 68 slides with 6587 views.The document details a Kafka incident involving a broker failure that resulted in socket timeouts for multiple applications following an upgrade. Remediation strategies included traffic redirection and rollbacks, but issues persisted due to high request sizes and CPU loads, leading to a challenging debugging process. The investigation highlighted the need for continuous monitoring of request handling metrics to prevent future occurrences of similar problems.
Troubleshooting Kafka's socket server: from incident to resolution
Joel Koshy
68 slides6.6K views
Guaranteed Event Delivery with Kafka and NodeJS | Amitesh Madhur, Nutanix by HostedbyConfluent, has 56 slides with 763 views.The document discusses utilizing Kafka with Node.js for guaranteed event delivery, highlighting advantages such as real-time updates through webhooks and an easy subscription interface. It elaborates on design considerations for event delivery methods, including at-most-once, at-least-once, and exactly-once semantics, and provides implementation details for both producing and consuming messages. Key takeaways emphasize the decoupling of services using Kafka, the importance of retries for failed events, and the benefits of asynchronous processing with Node.js.
Guaranteed Event Delivery with Kafka and NodeJS | Amitesh Madhur, Nutanix
HostedbyConfluent
56 slides763 views
Multi-service reactive streams using Spring, Reactor, RSocket by Stéphane Maldini, has 66 slides with 1714 views.This document discusses multi-service reactive streams using RSocket, Reactor, and Spring. It introduces reactive programming concepts and how RSocket provides a binary protocol for efficient machine-to-machine communication through request-response, fire-and-forget, request-stream, and request-channel interaction models. It also addresses how RSocket features like resumption, metadata, fragmentation, and leasing improve performance and flexibility compared to other protocols.
Multi-service reactive streams using Spring, Reactor, RSocket
Stéphane Maldini
66 slides1.7K views
Ad

More from Yakov Fain (14)

Type script for_java_dev_jul_2020 by Yakov Fain, has 40 slides with 299 views.This document provides an overview of TypeScript for Java developers. It discusses what TypeScript is, its popularity according to surveys, how it adds types to JavaScript to catch errors, typical workflows using TypeScript and IDEs, classes and inheritance in TypeScript, generics and interfaces, and decorators. Examples are provided throughout to illustrate TypeScript concepts and features.
Type script for_java_dev_jul_2020
Yakov Fain
40 slides299 views
TypeScript for Java Developers by Yakov Fain, has 57 slides with 3928 views.This document introduces TypeScript for Java developers. It provides an overview of TypeScript, why to use it, how to get started, and examples of key TypeScript features like classes, interfaces, generics, decorators, and async/await. The author is an Angular practice lead and Java Champion who has authored books on Angular development with TypeScript. The document demonstrates how to set up a TypeScript environment and compile code, and provides code samples for many TypeScript language features and patterns.
TypeScript for Java Developers
Yakov Fain
57 slides3.9K views
Using JHipster 4 for generating Angular/Spring Boot apps by Yakov Fain, has 35 slides with 3581 views.The document presents a guide on using JHipster 4 to generate Angular/Spring Boot applications, covering both front-end and back-end development. It includes a step-by-step agenda, discusses the pros and cons of JHipster, and provides examples of creating REST services, deploying applications, and managing entities. Additionally, it outlines deployment options and helpful resources for developers.
Using JHipster 4 for generating Angular/Spring Boot apps
Yakov Fain
35 slides3.6K views
Angular 4 for Java Developers by Yakov Fain, has 40 slides with 7322 views.This document provides an overview and agenda for a presentation on Angular for Java developers. The presentation will cover: generating an Angular project with Angular CLI; creating a Java REST service with Spring Boot; building an Angular REST client to interact with the Spring Boot backend; and demonstrating a sample Angular app using REST and WebSockets. It also briefly outlines key Angular concepts like components, dependency injection, routing, reactive programming with Observables, and forms.
Angular 4 for Java Developers
Yakov Fain
40 slides7.3K views
Angular 2 for Java Developers by Yakov Fain, has 57 slides with 25866 views.This document provides an overview of Angular 2 for Java developers. It discusses that Angular 2 is a complete rewrite of AngularJS with a focus on components, better performance, and streamlined dependency injection. It also covers key aspects of Angular 2 like project structure, templates, data binding, dependency injection, routing, and use of reactive programming with RxJS. Sample code examples are provided to demonstrate concepts like components, services, dependency injection, routing, and use of observables.
Angular 2 for Java Developers
Yakov Fain
57 slides25.9K views
Dart for Java Developers by Yakov Fain, has 57 slides with 2083 views.Dart is a productive way to develop future JavaScript apps today. It comes with a complete set of development tools and will help ease development of EcmaScript 6 in 2016. Dart simplifies development by allowing optional variable types and single inheritance for classes. It supports concurrency without threads. Popular IDEs like IntelliJ, WebStorm, and Eclipse support Dart development. Code can run in the Dart VM for fast feedback or compile to JavaScript to run in browsers.
Dart for Java Developers
Yakov Fain
57 slides2.1K views
RESTful services and OAUTH protocol in IoT by Yakov Fain, has 58 slides with 3975 views.The document presents an approach to integrating consumer IoT devices, specifically a blood pressure monitor, into business workflows using RESTful services, OAuth, and WebSocket protocols. It includes a live demo and discusses key technologies for data exchange, configuration of IoT workflows, and security measures related to OAuth authentication. The document also covers practical implementations, such as integrating various consumer health devices into insurance applications.
RESTful services and OAUTH protocol in IoT
Yakov Fain
58 slides4K views
Integrating consumers IoT devices into Business Workflow by Yakov Fain, has 40 slides with 2290 views.The document discusses the integration of consumer IoT devices into business workflows, highlighting the potential for automation and data processing in enterprise environments. It covers how to get involved with IoT, the use of various protocols and technologies for integration, and provides a detailed OAuth workflow for using device APIs. A specific use case of integrating health monitoring devices into insurance workflows is presented, emphasizing the benefits of reducing manual data entry.
Integrating consumers IoT devices into Business Workflow
Yakov Fain
40 slides2.3K views
Seven Versions of One Web Application by Yakov Fain, has 54 slides with 2350 views.The document reviews seven versions of a single-page web application (SPA) using various technologies such as HTML/Ajax, jQuery, Ext JS, and more. It discusses responsive web design, modularization techniques, and frameworks like jQuery Mobile and Sencha Touch, each with their respective pros and cons. The document also provides guidance on choosing the right framework based on application requirements and developer preferences.
Seven Versions of One Web Application
Yakov Fain
54 slides2.4K views
Running a Virtual Company by Yakov Fain, has 44 slides with 2176 views.This document describes how the author created and ran a virtual company with remote workers. It discusses how they started with an idea to create a consulting company, recruited remote developers primarily from Eastern Europe, and later spun off the consulting work into a product company. They were able to successfully run and grow both companies entirely remotely for many years without a central office by using flexible work arrangements, competitive pay, clear processes and communication.
Running a Virtual Company
Yakov Fain
44 slides2.2K views
Princeton jug git_github by Yakov Fain, has 31 slides with 1227 views.The document introduces Git and GitHub for managing code repositories in a distributed version control system. It explains the basic Git concepts and workflows including initializing local repositories, staging and committing changes, and pushing/pulling from remote repositories hosted on services like GitHub. The document provides an overview of how distributed version control with Git differs from centralized systems and allows developers to work offline and sync changes later.
Princeton jug git_github
Yakov Fain
31 slides1.2K views
Speed up your Web applications with HTML5 WebSockets by Yakov Fain, has 40 slides with 3233 views.The document discusses methods to enhance web applications using HTML5 WebSockets, server-sent events (SSE), and traditional HTTP request-response techniques. It details a server-client architecture for generating and displaying random stock prices using various technologies, including GlassFish, Ext JS, and Java EE. The document also highlights the benefits of WebSockets over traditional methods, showing significant reductions in data overhead and latency.
Speed up your Web applications with HTML5 WebSockets
Yakov Fain
40 slides3.2K views
Surviving as a Professional Software Developer by Yakov Fain, has 55 slides with 3577 views.Документ принадлежит Якову Файну и обсуждает ключевые качества успешных программистов и менеджеров в области информационных технологий. В нем подчеркивается важность коммуникации, профессионализма и способности к самоорганизации, а также обсуждаются личные трудности разработчиков, такие как задержки и проблемы с балансом между работой и личной жизнью. Кроме того, приводятся советы по улучшению профессиональных навыков и достижениям в карьере.
Surviving as a Professional Software Developer
Yakov Fain
55 slides3.6K views
Becoming a professional software developer by Yakov Fain, has 35 slides with 583 views.The document discusses essential strategies for aspiring Java developers to navigate the international IT job market, regardless of their geographical location. It covers topics such as job searching, cultural differences, contractor vs. employee dynamics, and the importance of continuous skill development. Additionally, it emphasizes the significance of maintaining confidentiality around salary and the nuances of presenting oneself professionally online.
Becoming a professional software developer
Yakov Fain
35 slides583 views

Recently uploaded (20)

Down the Rabbit Hole – Solving 5 Training Roadblocks by Rustici Software, has 15 slides with 106 views.Feeling stuck in the Matrix of your training technologies? You’re not alone. Managing your training catalog, wrangling LMSs and delivering content across different tools and audiences can feel like dodging digital bullets. At some point, you hit a fork in the road: Keep patching things up as issues pop up… or follow the rabbit hole to the root of the problems. Good news, we’ve already been down that rabbit hole. Peter Overton and Cameron Gray of Rustici Software are here to share what we found. In this webinar, we’ll break down 5 training roadblocks in delivery and management and show you how they’re easier to fix than you might think.
Down the Rabbit Hole – Solving 5 Training Roadblocks
Rustici Software
15 slides106 views
Kubernetes Security Act Now Before It’s Too Late by Michael Furman, has 50 slides with 68 views.In today's cloud-native landscape, Kubernetes has become the de facto standard for orchestrating containerized applications, but its inherent complexity introduces unique security challenges. Are you one YAML away from disaster? This presentation, "Kubernetes Security: Act Now Before It’s Too Late," is your essential guide to understanding and mitigating the critical security risks within your Kubernetes environments. This presentation dives deep into the OWASP Kubernetes Top Ten, providing actionable insights to harden your clusters. We will cover: The fundamental architecture of Kubernetes and why its security is paramount. In-depth strategies for protecting your Kubernetes Control Plane, including kube-apiserver and etcd. Crucial best practices for securing your workloads and nodes, covering topics like privileged containers, root filesystem security, and the essential role of Pod Security Admission. Don't wait for a breach. Learn how to identify, prevent, and respond to Kubernetes security threats effectively. It's time to act now before it's too late!
Kubernetes Security Act Now Before It’s Too Late
Michael Furman
50 slides68 views
TrustArc Webinar - 2025 Global Privacy Survey by TrustArc, has 20 slides with 220 views.How does your privacy program compare to your peers? What challenges are privacy teams tackling and prioritizing in 2025? In the sixth annual Global Privacy Benchmarks Survey, we asked global privacy professionals and business executives to share their perspectives on privacy inside and outside their organizations. The annual report provides a 360-degree view of various industries' priorities, attitudes, and trends. See how organizational priorities and strategic approaches to data security and privacy are evolving around the globe. This webinar features an expert panel discussion and data-driven insights to help you navigate the shifting privacy landscape. Whether you are a privacy officer, legal professional, compliance specialist, or security expert, this session will provide actionable takeaways to strengthen your privacy strategy. This webinar will review: - The emerging trends in data protection, compliance, and risk - The top challenges for privacy leaders, practitioners, and organizations in 2025 - The impact of evolving regulations and the crossroads with new technology, like AI Predictions for the future of privacy in 2025 and beyond
TrustArc Webinar - 2025 Global Privacy Survey
TrustArc
20 slides220 views
Creating Inclusive Digital Learning with AI: A Smarter, Fairer Future by Impelsys Inc., has 14 slides with 15 views.Have you ever struggled to read a tiny label on a medicine box or tried to navigate a confusing website? Now imagine if every learning experience felt that way—every single day. For millions of people living with disabilities, poorly designed content isn’t just frustrating. It’s a barrier to growth. Inclusive learning is about fixing that. And today, AI is helping us build digital learning that’s smarter, kinder, and accessible to everyone. Accessible learning increases engagement, retention, performance, and inclusivity for everyone. Inclusive design is simply better design.
Creating Inclusive Digital Learning with AI: A Smarter, Fairer Future
Impelsys Inc.
14 slides15 views
Providing an OGC API Processes REST Interface for FME Flow by Safe Software, has 27 slides with 50 views.This presentation will showcase an adapter for FME Flow that provides REST endpoints for FME Workspaces following the OGC API Processes specification. The implementation delivers robust, user-friendly API endpoints, including standardized methods for parameter provision. Additionally, it enhances security and user management by supporting OAuth2 authentication. Join us to discover how these advancements can elevate your enterprise integration workflows and ensure seamless, secure interactions with FME Flow.
Providing an OGC API Processes REST Interface for FME Flow
Safe Software
27 slides50 views
War_And_Cyber_3_Years_Of_Struggle_And_Lessons_For_Global_Security.pdf by biswajitbanerjee38, has 21 slides with 32 views.Russia is one of the most aggressive nations when it comes to state coordinated cyberattacks — and Ukraine has been at the center of their crosshairs for 3 years. This report, provided the State Service of Special Communications and Information Protection of Ukraine contains an incredible amount of cybersecurity insights, showcasing the coordinated aggressive cyberwarfare campaigns of Russia against Ukraine. It brings to the forefront that understanding your adversary, especially an aggressive nation state, is important for cyber defense. Knowing their motivations, capabilities, and tactics becomes an advantage when allocating resources for maximum impact. Intelligence shows Russia is on a cyber rampage, leveraging FSB, SVR, and GRU resources to professionally target Ukraine’s critical infrastructures, military, and international diplomacy support efforts. The number of total incidents against Ukraine, originating from Russia, has steadily increased from 1350 in 2021 to 4315 in 2024, but the number of actual critical incidents has been managed down from a high of 1048 in 2022 to a mere 59 in 2024 — showcasing how the rapid detection and response to cyberattacks has been impacted by Ukraine’s improved cyber resilience. Even against a much larger adversary, Ukraine is showcasing outstanding cybersecurity, enabled by strong strategies and sound tactics. There are lessons to learn for any enterprise that could potentially be targeted by aggressive nation states. Definitely worth the read!
War_And_Cyber_3_Years_Of_Struggle_And_Lessons_For_Global_Security.pdf
biswajitbanerjee38
21 slides32 views
Viral>Wondershare Filmora 14.5.18.12900 Crack Free Download by Puppy jhon, has 30 slides with 48 views.➡ 🌍📱👉COPY & PASTE LINK👉👉👉 ➤ ➤➤ https://drfiles.net/ Wondershare Filmora Crack is a user-friendly video editing software designed for both beginners and experienced users.
Viral>Wondershare Filmora 14.5.18.12900 Crack Free Download
Puppy jhon
30 slides48 views
Securing Account Lifecycles in the Age of Deepfakes.pptx by FIDO Alliance, has 18 slides with 21 views.Securing Account Lifecycles in the Age of Deepfakes
Securing Account Lifecycles in the Age of Deepfakes.pptx
FIDO Alliance
18 slides21 views
“Why It’s Critical to Have an Integrated Development Methodology for Edge AI,... by Edge AI and Vision Alliance, has 19 slides with 37 views.For the full video of this presentation, please visit: https://www.edge-ai-vision.com/2025/06/why-its-critical-to-have-an-integrated-development-methodology-for-edge-ai-a-presentation-from-lattice-semiconductor/ Sreepada Hegade, Director of ML Systems and Software at Lattice Semiconductor, presents the “Why It’s Critical to Have an Integrated Development Methodology for Edge AI” tutorial at the May 2025 Embedded Vision Summit. The deployment of neural networks near sensors brings well-known advantages such as lower latency, privacy and reduced overall system cost—but also brings significant challenges that complicate development. These challenges can be addressed effectively by choosing the right solution and design methodology. The low-power FPGAs from Lattice are well poised to enable efficient edge implementation of models, while Lattice’s proven development methodology helps to mitigate the challenges and risks associated with edge model deployment. In this presentation, Hegade explains the importance of an integrated framework that tightly consolidates different aspects of edge AI development, including training, quantization of networks for edge deployment, integration with sensors and inferencing. He also illustrates how Lattice’s simplified tool flow helps to achieve the best trade-off between power, performance and efficiency using low-power FPGAs for edge deployment of various AI workloads.
“Why It’s Critical to Have an Integrated Development Methodology for Edge AI,...
Edge AI and Vision Alliance
19 slides37 views
Tech-ASan: Two-stage check for Address Sanitizer - Yixuan Cao.pdf by caoyixuan2019, has 16 slides with 25 views.A presentation at Internetware 2025.
Tech-ASan: Two-stage check for Address Sanitizer - Yixuan Cao.pdf
caoyixuan2019
16 slides25 views
FIDO Seminar: New Data: Passkey Adoption in the Workforce.pptx by FIDO Alliance, has 10 slides with 118 views.FIDO Seminar: New Data: Passkey Adoption in the Workforce
FIDO Seminar: New Data: Passkey Adoption in the Workforce.pptx
FIDO Alliance
10 slides118 views
Security Tips for Enterprise Azure Solutions by Michele Leroux Bustamante, has 67 slides with 16 views.Delivering solutions to Azure may involve a variety of architecture patterns involving your applications, APIs data and associated Azure resources that comprise the solution. This session will use reference architectures to illustrate the security considerations to protect your Azure resources and data, how to achieve Zero Trust, and why it matters. Topics covered will include specific security recommendations for types Azure resources and related network security practices. The goal is to give you a breadth of understanding as to typical security requirements to meet compliance and security controls in an enterprise solution.
Security Tips for Enterprise Azure Solutions
Michele Leroux Bustamante
67 slides16 views
AudGram Review: Build Visually Appealing, AI-Enhanced Audiograms to Engage Yo... by SOFTTECHHUB, has 17 slides with 38 views.AudGram changes everything by bridging the gap between your audio content and the visual engagement your audience craves. This cloud-based platform transforms your existing audio into scroll-stopping visual content that performs across all social media platforms.
AudGram Review: Build Visually Appealing, AI-Enhanced Audiograms to Engage Yo...
SOFTTECHHUB
17 slides38 views
FIDO Alliance Seminar State of Passkeys.pptx by FIDO Alliance, has 26 slides with 122 views.FIDO Seminar State of Passkeys
FIDO Alliance Seminar State of Passkeys.pptx
FIDO Alliance
26 slides122 views
MuleSoft for AgentForce : Topic Center and API Catalog by shyamraj55, has 22 slides with 89 views.This presentation dives into how MuleSoft empowers AgentForce with organized API discovery and streamlined integration using Topic Center and the API Catalog. Learn how these tools help structure APIs around business needs, improve reusability, and simplify collaboration across teams. Ideal for developers, architects, and business stakeholders looking to build a connected and scalable API ecosystem within AgentForce.
MuleSoft for AgentForce : Topic Center and API Catalog
shyamraj55
22 slides89 views
June Patch Tuesday by Ivanti, has 46 slides with 117 views.Ivanti’s Patch Tuesday breakdown goes beyond patching your applications and brings you the intelligence and guidance needed to prioritize where to focus your attention first. Catch early analysis on our Ivanti blog, then join industry expert Chris Goettl for the Patch Tuesday Webinar Event. There we’ll do a deep dive into each of the bulletins and give guidance on the risks associated with the newly-identified vulnerabilities.
June Patch Tuesday
Ivanti
46 slides117 views
Can We Use Rust to Develop Extensions for PostgreSQL? (POSETTE: An Event for ... by NTT DATA Technology & Innovation, has 35 slides with 84 views.Can We Use Rust to Develop Extensions for PostgreSQL? (POSETTE: An Event for Postgres 2025) June 11, 2025 Shinya Kato NTT DATA Japan Corporation
Can We Use Rust to Develop Extensions for PostgreSQL? (POSETTE: An Event for ...
NTT DATA Technology & Innovation
35 slides84 views
“Addressing Evolving AI Model Challenges Through Memory and Storage,” a Prese... by Edge AI and Vision Alliance, has 15 slides with 41 views.For the full video of this presentation, please visit: https://www.edge-ai-vision.com/2025/06/addressing-evolving-ai-model-challenges-through-memory-and-storage-a-presentation-from-micron/ Wil Florentino, Senior Segment Marketing Manager at Micron, presents the “Addressing Evolving AI Model Challenges Through Memory and Storage” tutorial at the May 2025 Embedded Vision Summit. In the fast-changing world of artificial intelligence, the industry is deploying more AI compute at the edge. But the growing diversity and data footprint of transformers and models such as large language models and large multimodal models puts a spotlight on memory performance and data storage capacity as key bottlenecks. Enabling the full potential of AI in industries such as manufacturing, automotive, robotics and transportation will require us to find efficient ways to deploy this new generation of complex models. In this presentation, Florentino explores how memory and storage are responding to this need and solving complex issues in the AI market. He examines the storage capacity and memory bandwidth requirements of edge AI use cases ranging from tiny devices with severe cost and power constraints to edge servers, and he explains how new memory technologies such as LPDDR5, LPCAMM2 and multi-port SSDs are helping system developers to meet these challenges.
“Addressing Evolving AI Model Challenges Through Memory and Storage,” a Prese...
Edge AI and Vision Alliance
15 slides41 views
Supporting the NextGen 911 Digital Transformation with FME by Safe Software, has 19 slides with 27 views.Next Generation 911 involves the transformation of our 911 system from an old analog one to the new digital internet based architecture. The evolution of NG911 opens up a host of new opportunities to improve the system. This includes everything from device based location, to real time text. This can improve location accuracy dramatically as well as provide live updates from the citizen in need along with real time sensor updates. There is also the opportunity to provide multi-media attachments and medical records if the end user approves. This digital transformation and enhancements all require the support of new NENA and CRTC standards, along with integration across a variety of data streams. This presentation will focus on how FME has supported NG911 transformations to date, and how we are positioning FME to support the enhanced capabilities to come. This session will be of interest to emergency services, municipalities and anyone who may be interested to know more about how emergency services are being improved to provide more accurate, localized information in order to improve the speed and relevance of emergency response and ultimately save more lives and provide better outcomes for those in need.
Supporting the NextGen 911 Digital Transformation with FME
Safe Software
19 slides27 views
FME for Distribution & Transmission Integrity Management Program (DIMP & TIMP) by Safe Software, has 42 slides with 47 views.Peoples Gas in Chicago, IL has changed to a new Distribution & Transmission Integrity Management Program (DIMP & TIMP) software provider in recent years. In order to successfully deploy the new software we have created a series of ETL processes using FME Form to transform our gas facility data to meet the required DIMP & TIMP data specifications. This presentation will provide an overview of how we used FME to transform data from ESRI’s Utility Network and several other internal and external sources to meet the strict data specifications for the DIMP and TIMP software solutions.
FME for Distribution & Transmission Integrity Management Program (DIMP & TIMP)
Safe Software
42 slides47 views
War_And_Cyber_3_Years_Of_Struggle_And_Lessons_For_Global_Security.pdf by biswajitbanerjee38, has 21 slides with 32 views.Russia is one of the most aggressive nations when it comes to state coordinated cyberattacks — and Ukraine has been at the center of their crosshairs for 3 years. This report, provided the State Service of Special Communications and Information Protection of Ukraine contains an incredible amount of cybersecurity insights, showcasing the coordinated aggressive cyberwarfare campaigns of Russia against Ukraine. It brings to the forefront that understanding your adversary, especially an aggressive nation state, is important for cyber defense. Knowing their motivations, capabilities, and tactics becomes an advantage when allocating resources for maximum impact. Intelligence shows Russia is on a cyber rampage, leveraging FSB, SVR, and GRU resources to professionally target Ukraine’s critical infrastructures, military, and international diplomacy support efforts. The number of total incidents against Ukraine, originating from Russia, has steadily increased from 1350 in 2021 to 4315 in 2024, but the number of actual critical incidents has been managed down from a high of 1048 in 2022 to a mere 59 in 2024 — showcasing how the rapid detection and response to cyberattacks has been impacted by Ukraine’s improved cyber resilience. Even against a much larger adversary, Ukraine is showcasing outstanding cybersecurity, enabled by strong strategies and sound tactics. There are lessons to learn for any enterprise that could potentially be targeted by aggressive nation states. Definitely worth the read!
War_And_Cyber_3_Years_Of_Struggle_And_Lessons_For_Global_Security.pdf
biswajitbanerjee38
21 slides32 views
“Why It’s Critical to Have an Integrated Development Methodology for Edge AI,... by Edge AI and Vision Alliance, has 19 slides with 37 views.For the full video of this presentation, please visit: https://www.edge-ai-vision.com/2025/06/why-its-critical-to-have-an-integrated-development-methodology-for-edge-ai-a-presentation-from-lattice-semiconductor/ Sreepada Hegade, Director of ML Systems and Software at Lattice Semiconductor, presents the “Why It’s Critical to Have an Integrated Development Methodology for Edge AI” tutorial at the May 2025 Embedded Vision Summit. The deployment of neural networks near sensors brings well-known advantages such as lower latency, privacy and reduced overall system cost—but also brings significant challenges that complicate development. These challenges can be addressed effectively by choosing the right solution and design methodology. The low-power FPGAs from Lattice are well poised to enable efficient edge implementation of models, while Lattice’s proven development methodology helps to mitigate the challenges and risks associated with edge model deployment. In this presentation, Hegade explains the importance of an integrated framework that tightly consolidates different aspects of edge AI development, including training, quantization of networks for edge deployment, integration with sensors and inferencing. He also illustrates how Lattice’s simplified tool flow helps to achieve the best trade-off between power, performance and efficiency using low-power FPGAs for edge deployment of various AI workloads.
“Why It’s Critical to Have an Integrated Development Methodology for Edge AI,...
Edge AI and Vision Alliance
19 slides37 views
“Addressing Evolving AI Model Challenges Through Memory and Storage,” a Prese... by Edge AI and Vision Alliance, has 15 slides with 41 views.For the full video of this presentation, please visit: https://www.edge-ai-vision.com/2025/06/addressing-evolving-ai-model-challenges-through-memory-and-storage-a-presentation-from-micron/ Wil Florentino, Senior Segment Marketing Manager at Micron, presents the “Addressing Evolving AI Model Challenges Through Memory and Storage” tutorial at the May 2025 Embedded Vision Summit. In the fast-changing world of artificial intelligence, the industry is deploying more AI compute at the edge. But the growing diversity and data footprint of transformers and models such as large language models and large multimodal models puts a spotlight on memory performance and data storage capacity as key bottlenecks. Enabling the full potential of AI in industries such as manufacturing, automotive, robotics and transportation will require us to find efficient ways to deploy this new generation of complex models. In this presentation, Florentino explores how memory and storage are responding to this need and solving complex issues in the AI market. He examines the storage capacity and memory bandwidth requirements of edge AI use cases ranging from tiny devices with severe cost and power constraints to edge servers, and he explains how new memory technologies such as LPDDR5, LPCAMM2 and multi-port SSDs are helping system developers to meet these challenges.
“Addressing Evolving AI Model Challenges Through Memory and Storage,” a Prese...
Edge AI and Vision Alliance
15 slides41 views

Reactive Streams and RxJava2

  • 1. Reactive Streams and RxJava2 Yakov Fain, Farata Systems
 
 yfain
  • 2. About myself • Solutions Architect at Farata Systems • Java Champion • Latest book:
 “Angular 2 Development with TypeScript”

  • 3. “If I had asked people what they wanted, they would have said faster horses”
 
 Henry Ford

  • 4. Synchronous vs asynchronous • Synchronous programming is straightforward • Asynchronous programming dramatically increases complexity
  • 5. Challenges in async programming • Handling failed async requests • Chaining async calls • The user already closed the view • Switching threads to update UI
  • 6. and more challenges • Avoiding writing blocking code in a multi-threaded app • Several consumers • Composable functions • Killing a pending Http request
  • 7. Backpressure Subscriber
 Sammy A publisher generates more data than a subscriber can process Publisher
  • 8. Examples of backpressure • The stock price changes 100 times a second • Accelerometer produces 50 signals a second • Iteration through a JDBC result set (rxjava-jdbc; rxjava2-jdbc) • A user drags the mouse to draw a curve. Can’t apply back pressure.
  • 9. Reactive Apps • The data is processed as streams • Message-driven: notifications • Resilient: stay alive in case of failures • Data flows through your app’s algorithms • Hide complexity of multi-threading
  • 10. Reactive Streams • A spec for async stream processing with non-blocking backpressure
 
 http://www.reactive-streams.org
 • Reactive Streams interfaces for JVM 
 
 https://github.com/reactive-streams/reactive-streams-jvm • Reactive Streams-based products: 
 
 RxJava2, Java 9 Flow APIs, Reactor 3, Akka Stream, MongoDB, Vert.x …
  • 11. Reactive Streams: Java interfaces
  • 12. Reactive Streams: Java interfaces
  • 13. Reactive Streams: Java interfaces backpressure
 support
  • 14. Reactive Streams: Java interfaces backpressure
 support
  • 15. Main RxJava2 players • Observable or Flowable - producers of data • Observer or Subscriber - consumers of data • Subject or Processor - implements both producer and consumer • Operator - en-route data transformation • Scheduler - multi-threading support
  • 16. Main Publishers and Subscribers in RxJava2 Observable
 no backpressure support 
 public interface Observer<T> {
 void onSubscribe(Disposable var1);
 
 void onNext(T var1);
 
 void onError(Throwable var1);
 
 void onComplete();
 } Publisher Subscriber Not from 
 Reactive Streams
  • 17. Observable
 no backpressure support Flowable
 with backpressure support public interface Observer<T> {
 void onSubscribe(Disposable var1);
 
 void onNext(T var1);
 
 void onError(Throwable var1);
 
 void onComplete();
 } public interface Subscriber<T> {
 void onSubscribe(Subscription var1);
 
 void onNext(T var1);
 
 void onError(Throwable var1);
 
 void onComplete();
 } Not from 
 Reactive Streams From 
 Reactive Streams Main publishers and subscribers in RxJava2 Publisher Subscriber
  • 18. Creating an Observable • Observable.create() • Observable.fromArray() • Observable.fromIterable() • Observable.fromCallable() • Observable.fromFuture() • Observable.range() • Observable.just() Observable.create(subscriber -> { int totalBeers = beerStock.size(); for (int i = 0; i < totalBeers; i++) {
 // synchronous push subscriber.onNext(beerStock.get(i)); } subscriber.onComplete(); });
  • 19. Observable<Beer> observableBeer = Observable.create(/* data source */); observableBeer
 .skip(1)
 .take(3)
 .filter(beer -> "USA".equals(beer.country))
 .map(beer -> beer.name + ": $" + beer.price)
 .subscribe(
 beer -> System.out.println(beer),
 
 err -> System.out.println(err),
 
 () -> System.out.println("Streaming is complete”),
 
 disposable -> System.out.println( 
 "Someone just subscribed to the beer stream!!!”)
 );
 ); Observable push O b s e r v e r Subscription
  • 20. Creating an Observer and subscribing Observable<Beer> beerData = BeerServer.getData(); // returns an Observable
 
 Observer beerObserver = new Observer<Beer>() {
 
 public void onSubscribe(Disposable d) {
 System.out.println( " !!! Someone just subscribed to the bear stream!!! ");
 
 // If the subscriber is less than 21 year old, cancel subscription
 // d.dispose();
 }
 
 public void onNext(Beer beer) {
 System.out.println(beer);
 }
 
 public void onError(Throwable throwable) {
 System.err.println("In Observer.onError(): " + throwable.getMessage());
 }
 
 public void onComplete() {
 System.out.println("*** The stream is over ***");
 }
 };
 
 beerData
 .subscribe(beerObserver); // Streaming starts here
  • 21. Subscription subscription = Observable.create(new Observable.OnSubscribe<Response>() {
 OkHttpClient client = new OkHttpClient();
 
 @Override public void call(Subscriber<? super Response> subscriber) { // invoked on subscription try { Response response = client.newCall( // prepare the call for future execution new Request.Builder().url(“http://localhost:8080/beers“) .build()) .execute(); // use enqueue() for async requests 
 subscriber.onNext(response);
 
 subscriber.onComplete(); 
 if (!response.isSuccessful()) { subscriber.onError(new Exception(“Can’t get beers”)); } } catch (IOException e) { subscriber.onError(e); } } })
 .subscribe(...); // pass Observer; use observeOn/SubscribeOn to switch threads Pushing HTTP responses https://square.github.io/okhttp
  • 22. Controlling the flow with request() request(1); request(1);
  • 23. Handling backpressure Publisher Subscriber request(1) request(3) … request() is non-blocking onNext(value1) onNext(value2) onNext(value3) onNext(value4)
  • 24. BackpressureStrategy.BUFFER BackpressureStrategy.BUFFER
  • 25. BackpressureStrategy.DROP BackpressureStrategy.Drop
  • 26. BackpressureStrategy.LATEST BackpressureStrategy.Latest
  • 27. Creating a Flowable • Flowable.create() • Flowable.fromArray() • Flowable.fromIterable() • Flowable.fromCallable() • Flowable.empty() • Flowable.range() • Flowable.just()
  • 28. Flowable.create() and Observable.toFlowable() myObservable
 .toFlowable(BackpressureStrategy.BUFFER); Flowable<Beer> myFlowable
 .create(beerEmitter ->{…},
 BackpressureStrategy.BUFFER); Create Convert from Observable
  • 29. Requesting data from Flowable public class FlowableRange {
 
 static DisposableSubscriber<Integer> subscriber;
 
 public static void main(String[] args) {
 
 subscriber = new DisposableSubscriber<Integer>() {
 
 public void onStart() {
 request(5);
 
 while (true){ // Emulate 1-sec processing
 try {
 Thread.sleep(1000);
 } catch (InterruptedException e) {
 e.printStackTrace();
 }
 request(1);
 }
 }
 
 public void onNext(Integer t) {
 System.out.println("processing "+ t);
 if (t==8) { // just to demo unsubscribing
 subscriber.dispose();
 }
 }
 
 public void onError(Throwable thr) {
 System.err.println("In onError(): " + thr.getMessage()); 
 }
 
 public void onComplete() {
 System.out.println("Done");
 }
 };
 
 Flowable.range(1, 10)
 .subscribe(subscriber);
 }
 }
  • 30. Demo 
 1. FlowableRange
 2. BeerClientFlowable Code samples: https://github.com/yfain/rxjava2
  • 31. An Operator Observable Observable A transforming
 function observableBeer
 .filter(b -> "USA".equals(b.country)) Docs: http://reactivex.io/documentation/operators
  • 32. QUIZ: What value(s) this observable emits? Observable
 .just(5, 9, 10) // emits 5, 9, 10
 
 .filter(i -> i % 3 > 0)
 
 .map(n -> "$" + n * 10)
 
 .filter(s -> s.length() < 4);
  • 33. Observable
 .just(5, 9, 10) // emits 5, 9, 10
 
 .filter(i -> i % 3 > 0)
 
 .map(n -> "$" + n * 10)
 
 .filter(s -> s.length() < 4) 
 .subscribe(System.out::println);
  • 34. Composing observables
  • 35. merge: combining observables
  • 36. concat: combining observables in order
  • 37. zip: combining observables of different types
  • 38. flatMap
  • 39. switchMap
  • 40. Types of Observables Hot Cold Push Produce a steam even
 if no-one cares r Produce a stream when 
 someone asks for it ✔
  • 41. Hot Observables • Mouse events • Publishing stock prices • An accelerometer in a smartphone
  • 42. Making observables hot
  • 43. Turning a cold observable into hot ConnectableObservable<Long> numbers = (ConnectableObservable<Long>) Observable
 .interval(1, TimeUnit.SECONDS) // generate seq numbers every second
 .publish(); // make it hot
 
 numbers.connect(); // creates an internal subscriber to start producing data
 numbers.subscribe(n ->System.out.println("First subscriber: "+ n ));
 
 Thread.sleep(3000);
 
 numbers.subscribe(n ->System.out.println(" Second subscriber: "+ n ));

  • 44. Demo 
 HotObservable
  • 45. Schedulers
  • 46. Concurrency with Schedulers • subscribeOn(strategy) - run Observable in a separate thread: 
 Operations with side effects like files I/O;
 Don’t hold off the UI thread
 • observeOn(strategy) - run Observer in a separate thread,
 Update Swing UI on the Event Dispatch Thread
 Update Android UI on the Main thread
  • 47. Multi-threading strategies • Schedulers.computation() - for computations: # of threads <= # of cores • Schedulers.io() - for long running communications; backed by a thread pool • Schedulers.newThread() - new thread for each unit of work • Schedulers.from(Executor) - a wrapper for Java Executor • Schedulers.trampoline() - queues the work on the current thread • AndroidSchedulers.mainThread() - handle data on the main thread (RxAndroid)
  • 48. Switching threads Operator1() Operator2() ObserveOn() Observable Subscriber Thread 1 Thread 2 subscribeOn() observeOn()
  • 49. Multi-threaded processing with flatMap() Operator1() Operator2() flatMap() Observable Subscriber Thread 1 Observable/Thr2 Observable/Thr3 Observable/ThrN Spawn a separate thread for each observable …
  • 50. Turning a value into
 an observable Observable.range(1, 1000) .flatMap(n->Observable.just(n)
 .subscribeOn(Schedulers.computation()))
 .map(n->n*2)
 .observeOn(AndroidSchedulers.mainThread())
 .subscribe(myView.update()); Subscribing to each observable on the computation thread Switching to the main thread Updating the UI
  • 51. Demo 
 schedulers/SubscribeOnObserveOn
 
 ParallelStreams
  • 52. Parallel operations with ParallelFlowabe • Parallel execution of some operators
 • The source sequence is dispatched into N parallel “rails” • runOn() —-> sequential() is more efficient fork/join than flatMap()
 • Each rail can spawn multiple async threads with Schedulers
  • 53. Parallel Execution int numberOfRails = 4; // can query #processors with parallelism()
 
 ParallelFlowable
 .from(Flowable.range(1, 10), numberOfRails)
 .runOn(Schedulers.computation())
 .map(i -> i * i)
 .filter(i -> i % 3 == 0)
 .sequential()
 .subscribe(System.out::println); Tasks run simultaneously on different CPUs or computers. ParallelFlowableRange.java
  • 54. Summary • Observable: no backpressure support • Flowable: backpressure support • Operators can be chained • flatmap() used for handling observable of observables • Schedulers support multi-threading • subscribeOn()/observeOn() - switching between threads • ParallelFlowable - initiate parallel processing
  • 55. Links • Slides: http://bit.ly/2q3Ovt4 • Code samples: 
 https://github.com/yfain/rxjava2 • Our company: faratasystems.com • Blog: yakovfain.com • Twitter: @yfain