【勉強会】第5回Reactive System Meetup in 西新宿
https://reactive-shinjuku.connpass.com/event/79769/
リアクティブシステムをテーマにした勉強会、今回は「Akka実践バイブル」刊行記念としてAkka Matsuri!!
リアクティブ・システムとは
リアクティブ・システムは、メッセージ駆動のアーキテクチャによりユーザーの要求に可能な限り迅速にレスポンスするシステムです。高負荷状況や問題が検出された時でも応答時間を一定水準に保ち、部分的な障害が発生した時にもシステム全体を危険にさらすことなく回復させます。(リアクティブ宣言もご参照下さい。)
Reactive Messaging Patternsに学ぶシステム間統合
奥田 佳享氏(@yoskhdia)
書籍「Reactive Messaging Patterns with the Actor Model(Addison-Wesley Professional)」(RMP)は「実践ドメイン駆動設計(翔泳社)」の著者Vaughn Vernon氏によって書かれました。 この本は、Enterprise Integration Patterns(EIP)をAkkaを使ってどう実践するかを述べたものです。
Akkaのリアクティブでレジリエンスな特性はエンタープライズ領域やシステム間の統合でこそ活かされるように思います。RMPの登場によって、EIPはより具体性を持って現代におけるひとつの選択肢として確立されました。しかし、RMPもEIPも日本語の情報は乏しく、収録されるパターンの数も膨大です。 本セッションでは、2016年4月から2017年9月にかけて開催されたRMP読書会のなかで、私が得た知識や気付きを共有します。
チャットワークのメッセージシステムを支える新分散ID発行器の内部
安田 裕介氏(@TanUkkii007)
チャットワークは2017年の春にメッセージのIDを64bitに移行しました。この新IDはTwitter snowflakeのような、旧来のRDBのIDと互換性を保ちつつも、分散発行が可能なIDとなっています。 分散ID発行器は1台で秒間40000のIDを発行でき、旧来の発行器と比べてレイテンシを10msほど改善しました。
分散ID発行器ではAkkaとZooKeeperを用いました。 ZooKeeperアプリケーションは 1.受動的で、 2.状態機械であり、 コネクションの喪失などの3.エラーに常に対処し、 またセッションの期限切れの際に4.状態を破棄する 必要があります。これらはまさにアクターで自然に実装できます。 またアクターの位置透過性とAkkaのマルチJVMテストキットは分散環境でのテストを容易にします。
この発表では新ID発行器の内部を、アクターとZooKeeperの組み合わせの観点から解説します。
https://www.slideshare.net/mobile/TanUkkii/distributed-id-generator-in-chatwork
ネットワークと型~Akkaの未来
Konrad Malawski氏(@ktoso)
- Akkaの新しいTyped Actor API
- ネットワークを介したAkka Streams
- どのようにしてネットワークと型(Type)を密接に結びつけることができるのか について解説
AkkaはErlangからインスパイアされた「let it crash」スタイルでリアクティブシステムを構築し、失敗に反応し自己回復できます。このスタイルはこれまで以上に主流となってきています。本講演では、これらのコンセプトについて深く掘り下げ、トレードオフ、障害シナリオ、治癒メカニズム、そしてクラウドネイティブなシステムが持つ複雑性にAkkaがどのように対処するかを探求します。
発表者 テーマ @tmochizuki2 さん akka-streamを使ってOOMEを回避する話
@KojiMatsumiya さん Akkaのschedulerをストリーミング処理と組合せてみた話
https://speakerdeck.com/mattsu6/sutorimuchu-li-deakka-schedulerwohuo-yong-sitemitahua