読者です 読者をやめる 読者になる 読者になる

岡本さんを招いて野毛倶楽部「Reactiveの夜」を開催しました

Scala Reactive Java

よこはまクラウド勉強会というコミュニティにはふたつの顔があり、昼の部と夜の部というのがあります。

最近は各月で

  • 昼から始まる「ふつうの人たちによるふつうのエンジニアに向けた」勉強会
  • 夜からはじまりこの人の話を聞いて見たいとテーマにあった人を招いてディープな話題を繰り広げる

*1

という毛色が少し違う感じで2つの側面で主催者も楽しみにながらやっています。

そして、今日は下記イベント(夜の部)を開催しました。

ykcloud.doorkeeper.jp

「Reactive」の現状と技術的な方向性についてゆるふわで語り明かす

というコンセプトで岡本さんを招いてスライドを使い発表形式スタイルで座談も交えながら、Reactiveを軸にお話を聞いたり近い未来の話や動向や現状とのすり合わせなど、過去最大級の盛り上がりであっという間の4時間を過ごしました。

twitter.com

キーワードとスライド発表の様子を中心に今日のネタを紹介します。

Photos:

f:id:guyon:20151014191635j:plain

まずはReactiveという言葉が先行している所もあるので整理してから

f:id:guyon:20151014192900j:plain

リアクティブプログラミングを行う為のライブラリのひとつ。Javaで実装されています。 値を変更したらデータフローとしてメッセージパッシングで値がこういう風に変更されるよという。基礎的なこと。

f:id:guyon:20151014193911j:plain

このあたりから徐々に深い話しに入っていきます

f:id:guyon:20151014194102j:plain

f:id:guyon:20151014194401j:plain

会場のボルテージも高まります

f:id:guyon:20151014194531j:plain

近い将来の話や岡本さんが考える流れをいろいろとしていただき

f:id:guyon:20151014195208j:plain

Reactiveでコンポーネント化されている事により、データフローを表現する実装コードは一つでもバックで実行エンジンを切り替えて実行する事が可能だという実例をご紹介いただきました。

そして、このあたりに岡本さんからの本日の格言のひとつがでて「ランタイムを制するものがReactiveを制する」というフレーズ。 ランタイムがどれだけ重要な役割を果たしているのかという話。

f:id:guyon:20151014200644j:plain

f:id:guyon:20151014200731j:plain

Pub/Subでよくぶちあたる問題点とリソースを最大限に活かす事。ブローカーで全体を把握するという発想が引き起こす事。 Publisher側で送りすぎるとsubscriber側パンクするし、subscriber側のリソース確保しまくってメッセージバッファ領域を広げまくっておくとリソースもったいないよねってなる。

f:id:guyon:20151014200931j:plain

システムが破綻しない事が大事。Publisherに任せる事によって実現できるよね。Back-Pressureというキーワードはこの後もちょくちょくでてきました。

f:id:guyon:20151014201548j:plain

f:id:guyon:20151014201729j:plain

分散の話しからNetflix Hystrixに話題が広がって。本日の話しの中心のひとつとなりました。 ちなみにキャラクターは「ハリネズミ」だそうです。

github.com

f:id:guyon:20151014202305j:plain

f:id:guyon:20151014202450j:plain

マイクロサービスの視点で非同期処理という肴に、野毛の肴が相まって盛り上がり。 Scalaやモナディックプログラミングなど話しは広がりまくりです。 長時間戻ってこない場合の時やリトライのしくみ、Finagleのはなしなどキーワードは多すぎで紹介し切れないくらいありました。

okapies.hateblo.jp

話しの途中でこんなエントリー記事を紹介していただいたりも。

f:id:guyon:20151014205057j:plain

またまた、資料を使いながら新しい発表の肴に。

f:id:guyon:20151014205252j:plain

Reactiveマニフェストのあたりのはなし。用語が参考になったり、「このあたりについては〜?」みたいな気になるポイントについて質疑があった時に「実はReactiveマニフェストでも言及がありまして」というやりとも何度かありました。

私自身はアジャイルマニフェスト的なところや響きでのわかりやすさのマーケティング要素の面も気になっていましたが、今日話しを聞いてReactiveマニフェストに好感を持ちました。

f:id:guyon:20151014205757j:plain

Reactiveなんちゃらおおいですよね。名前があるってべんり。違いやどういう背景でこの呼び名がでてきたかというところまでお話してくださったので、わかりやすかったです。すごく説明上手で岡本さんすごいと心の中で感心しまくっていました。

f:id:guyon:20151014210057j:plain

とても分かりやすい図

f:id:guyon:20151014210244j:plain

f:id:guyon:20151014210356j:plain

f:id:guyon:20151014210819j:plain

Reactive Systemについてどんどん言及。従来の3層モデルとのちがいも。 GitHub上で仕様策定したというのはインパクト大きかった。IETFRFCなどのように標準化するプロセスや決め方などをあえてとらず、こういう形で実現できたという事はすごいことでは。

f:id:guyon:20151014213747j:plain

三崎マグロが推しの居酒屋の個室を借りてプロジェクターを持ち込んでいるだけで簡素、裏に見えているのはホッピー!! 10人未満がひとつの大きなテーブルですごく近い距離感で質問ができる空間でやってます。

f:id:guyon:20151014214137j:plain

reliableの話題からAeron。キーワードに結びつくフレームワークの紹介をその場でアクセスしながら話しました。

github.com

f:id:guyon:20151014222107j:plain

非同期と結果整合性の話しから、分散合意やパクソスやモノイドやCRDTなどがキーワードに。 委譲を行った場合にどうするといいのか。どういうことを考えなければいけないのかというわりと現場であるリアリティ度が高い話しをしました。

kuenishi.hatenadiary.jp

f:id:guyon:20151014222313j:plain

Scalaの話しをしていてClojureの話しになってDatomicにいきついたのか?どの流れでこの話しになったのか忘れてしまいました。

Clojureの作者が作ったデータベースDatomicが凄い

f:id:guyon:20151014222344j:plain

既に3回岡本さんのReactiveの発表を聞いている参加者の一人である田中さんがブログで言及していた「CRUD is Dead」について話題が及びます。データの扱いについてupdateではなくappendすることでの違いなど。Amazon Auroraの中の作りとRDBのはなし。アーキテクチャ選択とデータ量が増える事によりリソースコストが増大しユーザが負担するコストとのトレードオフの話しなどもありました。

tanakakoichi9230.hatenablog.com

f:id:guyon:20151014222558j:plain

f:id:guyon:20151014224114j:plain

こんな話題や

f:id:guyon:20151014224413j:plain

あの人は過去にこんな事やっていたんですねー。って話したり。

f:id:guyon:20151014224955j:plain

f:id:guyon:20151014225114j:plain

f:id:guyon:20151014225631j:plain

f:id:guyon:20151014225650j:plain

f:id:guyon:20151014230033j:plain

Playの話しからAkkaまで、ほぼ終盤でこの話題が登場。

f:id:guyon:20151014230101j:plain

入り口から出口まで。ストリームというのは今後ひとつのキーワードとなっていくという実感。

f:id:guyon:20151014230416j:plain

JDBCのスレッドプールあたりのわだいを混ぜつつ

f:id:guyon:20151014230607j:plain

InfoQでこんな事をいっていたよね。Reactiveマニフェスト2.0。イベント駆動からメッセージ駆動に言い方かえてたり。

f:id:guyon:20151014230727j:plain

f:id:guyon:20151014230738j:plain

ReactiveSocket。「asynchronous, binary boundary」について。Netflixは今日たくさんでてきたキーワードでした。エコシステムについても話題になりました。NetflixはRFCを狙わなくてもデファクトであれば自身サービスで困る事はないのでは。むしろデファクトでなくてもGoogleと同じで自身で必要なものを作っていけるし、そうしているのではと。

ReactiveSocket.io

最後に

写真を並べたらこんなにあったのかーと改めてReactiveをキーに色々はなししたなーと実感。 ご紹介した写真以外にも幾つか話題が合ったのですが写真を撮って場面もあったり、三崎マグロに熱中していることもありました!えっ!?

岡本さんにはテリトリーの広さと見識の深さなど感心するばかりで、色々な質問もできて今日はたのしく過ごせました。 快く引き受けていただき本当にありがとうございました。

次回のよこはまクラウド勉強会の野毛倶楽部(平日の夜開催の部)では違うテーマでもこんな感じでふるゆわでやっていきたいと思いますので、興味のある方は是非ご参加ください!!キャパも小さくあまりおおっぴらに宣伝していませんが、告知ページで募集していきます。

本当にさいごは連投の写真を締めくくる写真締めで。

f:id:guyon:20151014233650j:plain

*1:両方とも懇親会を野毛という街飲み屋に繰り出し普段感じている事をざっくばらんに懇親をしています