SlideShare a Scribd company logo
1 of 71
Download to read offline
A Lite Rx API for the JVM
井口 貝 @ SmartNews, Inc.
SpringOne Platform 2016 報告会
自己紹介
名前
井口 貝 (いのくち かい)
@kainoque
所属
  サーバサイドエンジニア @ SmartNews, Inc.
ref: SmartNews, Inc. | Team
http://about.smartnews.com/ja/team/
自己紹介
自己紹介
SmartNews のニュース配信システム構成
・SpringOne 2016 のセッション報告を通じて、Reactive Streams の実装である
Reactor を紹介
 ・Reactor API の紹介
 ・Spring 5 との関連性
 ・注意点など
はじめに
・セッション概要
・”Reactive”
・Reactive Streams
・Reactor
・Reactor and Spring 5
・Reactor API Hands-on
・Notes
もくじ
・セッション概要
・”Reactive”
・Reactive Streams
・Reactor
・Reactor and Spring 5
・Reactor API Hands-on
・Notes
もくじ
タイトル
Reactor Core 3.0: A Lite Rx API for the JVM
内容
・Reactive Streams の概要とその実装の一つであるReactor の紹介
・API ハンズオン
発表者
・Mr. Stéphane Maldini (Project Reactor lead)
・Mr. Sébastien Deleuze (Spring and Project Reactor committer)
セッション概要
・セッション概要
・”Reactive”
・Reactive Streams
・Reactor
・Reactor and Spring 5
・Reactor API Hands-on
・Notes
もくじ
“Reactive”
広義には、「non-blocking で event-driven なシステム」を形容する言葉
Reactive Manifesto にてその必要要件が定義されている
・Responsive (即応性)
・Resilent (耐障害性)
・Elastic (弾力性)
・Message-Driven (メッセージ駆動)
ref: The Reactive Manifesto
http://www.reactivemanifesto.org/
よりスケールし、安定的に動作し、キャパシティプランニングを容易にすることを標榜す
る場合、システムの Reactive 化は一つの選択肢となる
ユースケース
・BigData processsing
・外部サービスに依存する webapp
・データ生成側と利用側の処理速度に非対称性があるシステム
・大量のクライアントをさばく必要があるシステム
“Reactive”
もくじ
・セッション概要
・”Reactive”
・Reactive Streams
・Reactor
・Reactor and Spring 5
・Reactor API Hands-on
・Notes
Reactive Streams
”Reactive” なシステムを実現するための非同期ストリーム処理の標準仕様
・non-blocking な backpressure をもつ
・Reactive Streams Commons が策定
・j.u.c.Flow として Java 9 にも組み込まれる予定
・JEP 266: More Concurrency Updates
ref: JEP 266: More Concurrency Updates
http://openjdk.java.net/jeps/266
ref: reactive-streams-jvm
https://github.com/reactive-streams/reactive-streams-jvm
・Publisher と Subscriber の間のコミュニケーション
・Subscriber が受け取るデータの個数を、自身でコントロール可能(backpressure)
・Publisher は Subscriber の要求数より多いデータを送らない
・Publisher は Subscriber から要求されるまでデータを送らない
Reactive Streams
4 interfaces / 7 methods の定義 (+ TCK)
・Publisher
・Subscriber
・Subscription
・Processor
Reactive Streams Subscriber Publisher Subscription
Subscriber Publisher Subscription
subscribe(this)
generate
onSubscribe(s)
s
request(1)
request something
onNext(data)
onComplete()
Reactive Streams
Publisher
public interface Publisher<T> {
void subscribe(Subscriber<T> s);
}
Subscriber Publisher Subscription
Subscriber Publisher Subscription
subscribe(this)
generate
onSubscribe(s)
s
request(1)
request something
onNext(data)
onComplete()
Reactive Streams
Subscriber
public interface Subscriber<T> {
void onSubscribe(Subscription s);
void onNext(T t);
void onError(Throwable t);
void onComplete();
}
Subscriber Publisher Subscription
Subscriber Publisher Subscription
subscribe(this)
generate
onSubscribe(s)
s
request(1)
request something
onNext(data)
onComplete()
public interface Subscription {
void request(long n);
void cancel();
}
Reactive Streams
Subscription
Subscriber Publisher Subscription
Subscriber Publisher Subscription
subscribe(this)
generate
onSubscribe(s)
s
request(1)
request something
onNext(data)
onComplete()
public interface Processor<T, R> extends Subscriber<T>, Publisher<R> {}
Reactive Streams
Processor
Component A Component C
Component B
Subscriber of A / Publisher of C
Processor<T1, T2>
T1 T2
Reactive Streams
Subscriber Publisher Subscription
Subscriber Publisher Subscription
subscribe(this)
generate
onSubscribe(s)
s
request(1)
request something
onNext(data)
onComplete()
・Reactive Streams 自体は直接開発者に触られることを必ずしも想定していない
・通常は Reactive Streams を実装した Reactive API Library を使用する
・実装 Library
・RxJava 2.0 (JVM)
・Akka-Stream (JVM)
・Reactor 3.0 (JVM)
・RxJS (JavaScript) などなど
Reactive Streams
・セッション概要
・”Reactive”
・Reactive Streams
・Reactor
・Reactor and Spring 5
・Reactor API Hands-on
・Notes
もくじ
Reactor
Reactive Streams を実装した JVM 向け API ライブラリの一つ
・buffer, merge, concatenate, filter, map などの API を提供する
・RxJava の project lead である David Karnok や
 Spring Framework の commiter が中心となって contribute している
Reactor
特徴
・リソースの効率性に強くフォーカスしている
・contributor の多くが共通する Spring 5 とも相性良く設計されている
・Java 8 の各インターフェイスをベースにしている
・RxJava などに顕著な専用の Action1 などのクラスは用いていない
・デバッグ・ロギング・テストを容易に行える
 ・4th Generation Reactive Library
ref: Operator-fusion (Part 1)
http://akarnokd.blogspot.jp/2016/03/operator-fusion-part-1.html
Reactor
Reactor
・API 紹介
・Mono
・Flux
・Schedulers
・各型の比較
・RxJava との相互運用
・API 紹介
・Mono
・Flux
・Schedulers
・各型の比較
・RxJava との相互運用
Reactor
Reactor
Mono
・1 個 (または 0 個) の値のみを emit する Publisher 実装
・reactor.core.publisher.Mono
Mono
Reactor
Mono
Reactor
Flux
・複数の値を emit する Publisher 実装
・reactor.core.publisher.Flux
Reactor
Flux
Reactor
Flux
Reactor
Scheduler
・publish / subscribe を行うスレッドのスレッドプールの factory
・Schedulers.single(), parallel(), elastic() 等で生成
・publish / subscribe は、デフォルトでは呼び出し側スレッドで行われる
Reactor
Scheduler
・Slow-Publisher, Fast-Subscriber
・someFlux.subscribeOn(Schedulers.elastic())
Reactor
Scheduler
・Fast-Publisher, Slow-Subscriber
・someFlux.publishOn(Schedulers.elastic())
Reactor
Reactor
・API 紹介
・Mono
・Flux
・Schedulers
・各型の比較
・RxJava との相互運用
No value Single value Multiple Values
Blocking void T
Future<T>
Iterable<T>
Collection<T>
Stream<T>
Non-Blocking CompletableFuture<
Void>
CompletableFuture<
T>
CompletableFuture<
List<T>>
Reactive Streams Publisher<Void> Publisher<T> Publisher<T>
RxJava Completable Single<T> Observable<T>
Reactor Mono<Void> Mono<T> Flux<T>
Reactor
Reactor
・API 紹介
・Mono
・Flux
・Schedulers
・各型の比較
・RxJava との相互運用
RxJava1Adapter
RxJava 1 系 の Completable / Single / Observable と Reactor の
Mono / Flux の相互変換アダプタ
Reactor
from RxJava to RxJava
No value completableToMono publisherToCompletable
Single value singleToMono publisherToSingle
Multiple Values observableToFlux publisherToObservable
・セッション概要
・”Reactive”
・Reactive Streams
・Reactor
・Reactor and Spring 5
・Reactor API Hands-on
・Notes
もくじ
Reactor and Spring 5
Spring 5 における Reactive サポートの導入に際して、
Reactor Core がその基礎となっている
・例:
・Flux/Mono を受け取り、返却可能な Controller の導入
・Flux/Mono を返却可能な HTTP Client 実装の導入
ref: Reactive Programming with Spring 5.0 M1
https://spring.io/blog/2016/07/28/reactive-programming-with-spring-5-0-m1
Controller
Reactor and Spring 5
Reactive HTTP Client
in org.springframework.web.client.reactive
Reactor and Spring 5
Spring Initializr で手軽に試すことができる
Dependencies から Reactive Web を選択 (Spring Boot のバージョンは 1.4.1 (SNAPSHOT))
Reactor and Spring 5
ref: SPRING INITIALIZR bootstrap your application now
https://start.spring.io/
・セッション概要
・”Reactive”
・Reactive Streams
・Reactor
・Reactor and Spring 5
・Reactor API Hands-on
・Notes
もくじ
Reactor の各 API を理解するためのハンズオン
Part 1 から 9 まで、各 API を利用した JUnit テストが書かれている
それをグリーンにしながら進めていく
Reactor API Hands-on
ref: Lite Rx API Hands-on
https://github.com/reactor/lite-rx-api-hands-on
Part 1 Flux の作成
Part 2 Mono の作成
Part 3 値の変換
Part 4 Flux のマージ
Part 5 リクエスト
Part 6 その他の操作
Part 7 Reactive -> Blocking 処理の変換
Part 8 RxJava との相互運用
Part 9 Blocking -> Reactive 処理の変換
例
Reactor API Hands-on
Part 1 Flux の作成
Part 2 Mono の作成
Part 3 値の変換
Part 4 Flux のマージ
Part 5 リクエスト
Reactor API Hands-on
Part 6 その他の操作
Part 7 Reactive -> Blocking 処理の変換
Part 8 RxJava との相互運用
Part 9 Blocking -> Reactive 処理の変換
Mono#just
Reactor API Hands-on
Flux#fromIterable
Reactor API Hands-on
Part 1 Flux の作成
Part 2 Mono の作成
Part 3 値の変換
Part 4 Flux のマージ
Part 5 リクエスト
Reactor API Hands-on
Part 6 その他の操作
Part 7 Reactive -> Blocking 処理の変換
Part 8 RxJava との相互運用
Part 9 Blocking -> Reactive 処理の変換
{Mono,Flux}#map
Reactor API Hands-on
{Mono,Flux}#flatMap
Reactor API Hands-on
Part 1 Flux の作成
Part 2 Mono の作成
Part 3 値の変換
Part 4 Flux のマージ
Part 5 リクエスト
Reactor API Hands-on
Part 6 その他の操作
Part 7 Reactive -> Blocking 処理の変換
Part 8 RxJava との相互運用
Part 9 Blocking -> Reactive 処理の変換
Flux#mergeWith
Reactor API Hands-on
Flux#concatWith
Reactor API Hands-on
Part 1 Flux の作成
Part 2 Mono の作成
Part 3 値の変換
Part 4 Flux のマージ
Part 5 リクエスト
Reactor API Hands-on
Part 6 その他の操作
Part 7 Reactive -> Blocking 処理の変換
Part 8 RxJava との相互運用
Part 9 Blocking -> Reactive 処理の変換
Reactor API Hands-on
Flux#zip
Reactor API Hands-on
Mono#first
Reactor API Hands-on
flux#onErrorResumeWith
Part 1 Flux の作成
Part 2 Mono の作成
Part 3 値の変換
Part 4 Flux のマージ
Part 5 リクエスト
Reactor API Hands-on
Part 6 その他の操作
Part 7 Reactive -> Blocking 処理の変換
Part 8 RxJava との相互運用
Part 9 Blocking -> Reactive 処理の変換
Reactor API Hands-on
Mono#block
Reactor API Hands-on
Flux#defer
・セッション概要
・”Reactive”
・Reactive Streams
・Reactor
・Reactor and Spring 5
・Reactor API Hands-on
・Notes
もくじ
・安定的な動作、予測可能なキャパシティと引き換えに、オーバーヘッドはある
・非同期処理特有の複雑さ、デバッグのしづらさはある
Notes
Notes
Notes
おわりに
・”Reactive” なシステムを実現するための標準仕様としてReactive Streams が存在する
・Reactive なシステムを実現するライブラリとしてReactor という選択肢がある
・Non-blocking + backpressure を備えリソース効率性が高いReactive API Library
・Java 8 / Spring 5 と統合されている
・Mono / Flux により操作を行う
・依然として銀の弾丸ではない
http://about.smartnews.com/ja/careers/
We’re hiring!!
Web Application / iOS / Android / SRE / Ad-tech / Machine-learning / NLP

More Related Content

Viewers also liked

Spring で実現する SmartNews のニュース配信基盤
Spring で実現する SmartNews のニュース配信基盤Spring で実現する SmartNews のニュース配信基盤
Spring で実現する SmartNews のニュース配信基盤SmartNews, Inc.
 
SmartNewsのニュース配信を支えるサーバ技術 / Kazhiro Sera @ SmartNews,Inc. #jjug_ccc
SmartNewsのニュース配信を支えるサーバ技術 / Kazhiro Sera @ SmartNews,Inc. #jjug_cccSmartNewsのニュース配信を支えるサーバ技術 / Kazhiro Sera @ SmartNews,Inc. #jjug_ccc
SmartNewsのニュース配信を支えるサーバ技術 / Kazhiro Sera @ SmartNews,Inc. #jjug_cccSmartNews, Inc.
 
エンジニアからプロダクトマネージャーへ
エンジニアからプロダクトマネージャーへエンジニアからプロダクトマネージャーへ
エンジニアからプロダクトマネージャーへSmartNews, Inc.
 
Stream Processing in SmartNews #jawsdays
Stream Processing in SmartNews #jawsdaysStream Processing in SmartNews #jawsdays
Stream Processing in SmartNews #jawsdaysSmartNews, Inc.
 
SmartNews TechNight Vol5 : SmartNews AdServer 解体新書 / ポストモーテム
SmartNews TechNight Vol5 : SmartNews AdServer 解体新書 / ポストモーテムSmartNews TechNight Vol5 : SmartNews AdServer 解体新書 / ポストモーテム
SmartNews TechNight Vol5 : SmartNews AdServer 解体新書 / ポストモーテムSmartNews, Inc.
 
Building a Sustainable Data Platform on AWS
Building a Sustainable Data Platform on AWSBuilding a Sustainable Data Platform on AWS
Building a Sustainable Data Platform on AWSSmartNews, Inc.
 
SmartNews TechNight Vol.5 : SmartNews Ads の配信最適化の仕組みはどうなってるの? (エンジニア / SmartN...
SmartNews TechNight Vol.5 : SmartNews Ads の配信最適化の仕組みはどうなってるの? (エンジニア / SmartN...SmartNews TechNight Vol.5 : SmartNews Ads の配信最適化の仕組みはどうなってるの? (エンジニア / SmartN...
SmartNews TechNight Vol.5 : SmartNews Ads の配信最適化の仕組みはどうなってるの? (エンジニア / SmartN...SmartNews, Inc.
 
SmartNews's journey into microservices
SmartNews's journey into microservicesSmartNews's journey into microservices
SmartNews's journey into microservicesSmartNews, Inc.
 
SmartNews TechNight vol5 SmartNews Ads大図解
SmartNews TechNight vol5 SmartNews Ads大図解SmartNews TechNight vol5 SmartNews Ads大図解
SmartNews TechNight vol5 SmartNews Ads大図解SmartNews, Inc.
 
SmartNews TechNight Vol.5 : AD Data Engineering in practice: SmartNews Ads裏のデ...
SmartNews TechNight Vol.5 : AD Data Engineering in practice: SmartNews Ads裏のデ...SmartNews TechNight Vol.5 : AD Data Engineering in practice: SmartNews Ads裏のデ...
SmartNews TechNight Vol.5 : AD Data Engineering in practice: SmartNews Ads裏のデ...SmartNews, Inc.
 
インフラ専任エンジニアが一人もいないSmartNewsにおけるクラウド活用法
インフラ専任エンジニアが一人もいないSmartNewsにおけるクラウド活用法インフラ専任エンジニアが一人もいないSmartNewsにおけるクラウド活用法
インフラ専任エンジニアが一人もいないSmartNewsにおけるクラウド活用法SmartNews, Inc.
 
SmartNews Ads System - AWS Summit Tokyo 2015
SmartNews Ads System - AWS Summit Tokyo 2015SmartNews Ads System - AWS Summit Tokyo 2015
SmartNews Ads System - AWS Summit Tokyo 2015SmartNews, Inc.
 
Strem処理(Spark Streaming + Kinesis)とOffline処理(Hive)の統合
Strem処理(Spark Streaming + Kinesis)とOffline処理(Hive)の統合Strem処理(Spark Streaming + Kinesis)とOffline処理(Hive)の統合
Strem処理(Spark Streaming + Kinesis)とOffline処理(Hive)の統合SmartNews, Inc.
 
AWSの進化とSmartNewsの裏側
AWSの進化とSmartNewsの裏側AWSの進化とSmartNewsの裏側
AWSの進化とSmartNewsの裏側SmartNews, Inc.
 
Smartnews Product Manager Night
Smartnews Product Manager NightSmartnews Product Manager Night
Smartnews Product Manager NightSmartNews, Inc.
 
AWS meetup「Apache Spark on EMR」
AWS meetup「Apache Spark on EMR」AWS meetup「Apache Spark on EMR」
AWS meetup「Apache Spark on EMR」SmartNews, Inc.
 
SmartNews の Webmining を支えるプラットフォーム
SmartNews の Webmining を支えるプラットフォームSmartNews の Webmining を支えるプラットフォーム
SmartNews の Webmining を支えるプラットフォームSmartNews, Inc.
 
[SmartNews] Globally Scalable Web Document Classification Using Word2Vec
[SmartNews] Globally Scalable Web Document Classification Using Word2Vec[SmartNews] Globally Scalable Web Document Classification Using Word2Vec
[SmartNews] Globally Scalable Web Document Classification Using Word2VecKouhei Nakaji
 
LDAを用いた教師なし単語分類
LDAを用いた教師なし単語分類LDAを用いた教師なし単語分類
LDAを用いた教師なし単語分類Kouhei Nakaji
 

Viewers also liked (20)

Spring で実現する SmartNews のニュース配信基盤
Spring で実現する SmartNews のニュース配信基盤Spring で実現する SmartNews のニュース配信基盤
Spring で実現する SmartNews のニュース配信基盤
 
SmartNewsのニュース配信を支えるサーバ技術 / Kazhiro Sera @ SmartNews,Inc. #jjug_ccc
SmartNewsのニュース配信を支えるサーバ技術 / Kazhiro Sera @ SmartNews,Inc. #jjug_cccSmartNewsのニュース配信を支えるサーバ技術 / Kazhiro Sera @ SmartNews,Inc. #jjug_ccc
SmartNewsのニュース配信を支えるサーバ技術 / Kazhiro Sera @ SmartNews,Inc. #jjug_ccc
 
エンジニアからプロダクトマネージャーへ
エンジニアからプロダクトマネージャーへエンジニアからプロダクトマネージャーへ
エンジニアからプロダクトマネージャーへ
 
Stream Processing in SmartNews #jawsdays
Stream Processing in SmartNews #jawsdaysStream Processing in SmartNews #jawsdays
Stream Processing in SmartNews #jawsdays
 
SmartNews TechNight Vol5 : SmartNews AdServer 解体新書 / ポストモーテム
SmartNews TechNight Vol5 : SmartNews AdServer 解体新書 / ポストモーテムSmartNews TechNight Vol5 : SmartNews AdServer 解体新書 / ポストモーテム
SmartNews TechNight Vol5 : SmartNews AdServer 解体新書 / ポストモーテム
 
Building a Sustainable Data Platform on AWS
Building a Sustainable Data Platform on AWSBuilding a Sustainable Data Platform on AWS
Building a Sustainable Data Platform on AWS
 
SmartNews TechNight Vol.5 : SmartNews Ads の配信最適化の仕組みはどうなってるの? (エンジニア / SmartN...
SmartNews TechNight Vol.5 : SmartNews Ads の配信最適化の仕組みはどうなってるの? (エンジニア / SmartN...SmartNews TechNight Vol.5 : SmartNews Ads の配信最適化の仕組みはどうなってるの? (エンジニア / SmartN...
SmartNews TechNight Vol.5 : SmartNews Ads の配信最適化の仕組みはどうなってるの? (エンジニア / SmartN...
 
NLP in SmartNews
NLP in SmartNewsNLP in SmartNews
NLP in SmartNews
 
SmartNews's journey into microservices
SmartNews's journey into microservicesSmartNews's journey into microservices
SmartNews's journey into microservices
 
SmartNews TechNight vol5 SmartNews Ads大図解
SmartNews TechNight vol5 SmartNews Ads大図解SmartNews TechNight vol5 SmartNews Ads大図解
SmartNews TechNight vol5 SmartNews Ads大図解
 
SmartNews TechNight Vol.5 : AD Data Engineering in practice: SmartNews Ads裏のデ...
SmartNews TechNight Vol.5 : AD Data Engineering in practice: SmartNews Ads裏のデ...SmartNews TechNight Vol.5 : AD Data Engineering in practice: SmartNews Ads裏のデ...
SmartNews TechNight Vol.5 : AD Data Engineering in practice: SmartNews Ads裏のデ...
 
インフラ専任エンジニアが一人もいないSmartNewsにおけるクラウド活用法
インフラ専任エンジニアが一人もいないSmartNewsにおけるクラウド活用法インフラ専任エンジニアが一人もいないSmartNewsにおけるクラウド活用法
インフラ専任エンジニアが一人もいないSmartNewsにおけるクラウド活用法
 
SmartNews Ads System - AWS Summit Tokyo 2015
SmartNews Ads System - AWS Summit Tokyo 2015SmartNews Ads System - AWS Summit Tokyo 2015
SmartNews Ads System - AWS Summit Tokyo 2015
 
Strem処理(Spark Streaming + Kinesis)とOffline処理(Hive)の統合
Strem処理(Spark Streaming + Kinesis)とOffline処理(Hive)の統合Strem処理(Spark Streaming + Kinesis)とOffline処理(Hive)の統合
Strem処理(Spark Streaming + Kinesis)とOffline処理(Hive)の統合
 
AWSの進化とSmartNewsの裏側
AWSの進化とSmartNewsの裏側AWSの進化とSmartNewsの裏側
AWSの進化とSmartNewsの裏側
 
Smartnews Product Manager Night
Smartnews Product Manager NightSmartnews Product Manager Night
Smartnews Product Manager Night
 
AWS meetup「Apache Spark on EMR」
AWS meetup「Apache Spark on EMR」AWS meetup「Apache Spark on EMR」
AWS meetup「Apache Spark on EMR」
 
SmartNews の Webmining を支えるプラットフォーム
SmartNews の Webmining を支えるプラットフォームSmartNews の Webmining を支えるプラットフォーム
SmartNews の Webmining を支えるプラットフォーム
 
[SmartNews] Globally Scalable Web Document Classification Using Word2Vec
[SmartNews] Globally Scalable Web Document Classification Using Word2Vec[SmartNews] Globally Scalable Web Document Classification Using Word2Vec
[SmartNews] Globally Scalable Web Document Classification Using Word2Vec
 
LDAを用いた教師なし単語分類
LDAを用いた教師なし単語分類LDAを用いた教師なし単語分類
LDAを用いた教師なし単語分類
 

Similar to SpringOne Platform 2016 報告会「A Lite Rx API for the JVM」/ 井口 貝 @ SmartNews, Inc.

Reactive Extensions v2.0
Reactive Extensions v2.0Reactive Extensions v2.0
Reactive Extensions v2.0Yoshifumi Kawai
 
MessagePack RPC によるドキドキ非同期通信 @関ジャバ 2012年度8月
MessagePack RPC によるドキドキ非同期通信 @関ジャバ 2012年度8月MessagePack RPC によるドキドキ非同期通信 @関ジャバ 2012年度8月
MessagePack RPC によるドキドキ非同期通信 @関ジャバ 2012年度8月Takashi Someda
 
Using Chef for Infrastructure Automation of Ameba Pigg
Using Chef for Infrastructure Automation of Ameba PiggUsing Chef for Infrastructure Automation of Ameba Pigg
Using Chef for Infrastructure Automation of Ameba PiggYuuki Namikawa
 
大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (後編)
大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (後編)大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (後編)
大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (後編)Yuuki Namikawa
 
10.1 res tful services
10.1 res tful services10.1 res tful services
10.1 res tful servicesJian Feng
 
さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代...
さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代...さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代...
さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代...さくらインターネット株式会社
 
Isomorphic web development with scala and scala.js
Isomorphic web development  with scala and scala.jsIsomorphic web development  with scala and scala.js
Isomorphic web development with scala and scala.jsTanUkkii
 
Chefを利用した運用省力化とDevOpsの取り組みについて
Chefを利用した運用省力化とDevOpsの取り組みについてChefを利用した運用省力化とDevOpsの取り組みについて
Chefを利用した運用省力化とDevOpsの取り組みについてYuuki Namikawa
 
LL2021 Java update
LL2021 Java updateLL2021 Java update
LL2021 Java updatetorutk
 
React.js・ReactNative・Redux入門
React.js・ReactNative・Redux入門React.js・ReactNative・Redux入門
React.js・ReactNative・Redux入門Kazuhiro Yoshimoto
 
いよいよ始められる Java EEでのWebSocket #jjug #jjug_ccc #ccc_r21
いよいよ始められる Java EEでのWebSocket #jjug #jjug_ccc #ccc_r21いよいよ始められる Java EEでのWebSocket #jjug #jjug_ccc #ccc_r21
いよいよ始められる Java EEでのWebSocket #jjug #jjug_ccc #ccc_r21Takakiyo Tanaka
 
オブジェクト指向な人がRx swiftを試してみた
オブジェクト指向な人がRx swiftを試してみたオブジェクト指向な人がRx swiftを試してみた
オブジェクト指向な人がRx swiftを試してみた小林 弘明
 
node-handlersocket
node-handlersocketnode-handlersocket
node-handlersocketkoichik
 
Reactive Systems と Back Pressure
Reactive Systems と Back PressureReactive Systems と Back Pressure
Reactive Systems と Back PressureAkihiro Ikezoe
 

Similar to SpringOne Platform 2016 報告会「A Lite Rx API for the JVM」/ 井口 貝 @ SmartNews, Inc. (20)

Reactor Netty & Apache Kafka Stack #jsug
Reactor Netty & Apache Kafka Stack #jsugReactor Netty & Apache Kafka Stack #jsug
Reactor Netty & Apache Kafka Stack #jsug
 
Reactive Extensions v2.0
Reactive Extensions v2.0Reactive Extensions v2.0
Reactive Extensions v2.0
 
MessagePack RPC によるドキドキ非同期通信 @関ジャバ 2012年度8月
MessagePack RPC によるドキドキ非同期通信 @関ジャバ 2012年度8月MessagePack RPC によるドキドキ非同期通信 @関ジャバ 2012年度8月
MessagePack RPC によるドキドキ非同期通信 @関ジャバ 2012年度8月
 
Using Chef for Infrastructure Automation of Ameba Pigg
Using Chef for Infrastructure Automation of Ameba PiggUsing Chef for Infrastructure Automation of Ameba Pigg
Using Chef for Infrastructure Automation of Ameba Pigg
 
ReactiveSignalR
ReactiveSignalRReactiveSignalR
ReactiveSignalR
 
大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (後編)
大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (後編)大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (後編)
大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (後編)
 
JRuby on Rails
JRuby on RailsJRuby on Rails
JRuby on Rails
 
Rx java x retrofit
Rx java x retrofitRx java x retrofit
Rx java x retrofit
 
10.1 res tful services
10.1 res tful services10.1 res tful services
10.1 res tful services
 
さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代...
さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代...さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代...
さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代...
 
Isomorphic web development with scala and scala.js
Isomorphic web development  with scala and scala.jsIsomorphic web development  with scala and scala.js
Isomorphic web development with scala and scala.js
 
Chefを利用した運用省力化とDevOpsの取り組みについて
Chefを利用した運用省力化とDevOpsの取り組みについてChefを利用した運用省力化とDevOpsの取り組みについて
Chefを利用した運用省力化とDevOpsの取り組みについて
 
Mvc conf session_1_osada
Mvc conf session_1_osadaMvc conf session_1_osada
Mvc conf session_1_osada
 
LL2021 Java update
LL2021 Java updateLL2021 Java update
LL2021 Java update
 
React.js・ReactNative・Redux入門
React.js・ReactNative・Redux入門React.js・ReactNative・Redux入門
React.js・ReactNative・Redux入門
 
いよいよ始められる Java EEでのWebSocket #jjug #jjug_ccc #ccc_r21
いよいよ始められる Java EEでのWebSocket #jjug #jjug_ccc #ccc_r21いよいよ始められる Java EEでのWebSocket #jjug #jjug_ccc #ccc_r21
いよいよ始められる Java EEでのWebSocket #jjug #jjug_ccc #ccc_r21
 
RxSwift x APIKit
RxSwift x APIKitRxSwift x APIKit
RxSwift x APIKit
 
オブジェクト指向な人がRx swiftを試してみた
オブジェクト指向な人がRx swiftを試してみたオブジェクト指向な人がRx swiftを試してみた
オブジェクト指向な人がRx swiftを試してみた
 
node-handlersocket
node-handlersocketnode-handlersocket
node-handlersocket
 
Reactive Systems と Back Pressure
Reactive Systems と Back PressureReactive Systems と Back Pressure
Reactive Systems と Back Pressure
 

Recently uploaded

プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールプレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールsugiuralab
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxAtomu Hidaka
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000Shota Ito
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directoryosamut
 
プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価sugiuralab
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 

Recently uploaded (8)

プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールプレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツール
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
 
プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
 

SpringOne Platform 2016 報告会「A Lite Rx API for the JVM」/ 井口 貝 @ SmartNews, Inc.