プラグインベースのソフトウェアとは?開発とテストを容易にするデザインパターン #rubykaigi #rubykaigiA
Fluentdはcoreの上にEvent Routerが乗っている。Plugin Loaderはgemを呼び出すので、pluginをgem installしていれば使うことができる。Rubyのエコシステムに乗ってて合理的やな。 #rubykaigi #rubykaigiA
2015-12-13 15:12:59Fluentd開発者の意識が更新されてなくて 300+ plugins といっているが既に500くらいあるらしいぞ! #fluentd #rubykaigi
2015-12-13 15:14:31Fluent も小さいコアと多数のプラグインで構造されていて、 Core は単なる Event Router。 Event を各 Plugin が捕まえて、全ての仕事をこなす。動的な Plugin Loader は /gems/ から探すようになっている。 #rubykaigiA
2015-12-13 15:16:00Embulkのアーキテクチャの話。Java & Rubyで書かれたバルクデータローダー。これもin*out問題がある。 #rubykaigi #rubykaigiA
2015-12-13 15:16:56小さいコア、 microkernel と Event router 上に実際の仕事を行うコンポーネント群という構造は Symfony2 にアーキテクチャが似ているな #rubykaigiA
2015-12-13 15:18:19embulk-filter-kuromojiなるほどそこでやるのか!よみguessするならKyTeaも使えそうだぞ #rubykaigiA
2015-12-13 15:18:59kuromojiでよみがな展開するってのを英語で説明するの、めっちゃ難しそうやな… と思ったけど普通にreading form filterでいいのか。 #rubykaigi #rubykaigiA
2015-12-13 15:19:20なるほど、inputとoutputだけじゃなく、translatorとかfilterもpluginにできるから加工してから流す場合もn*n問題を避けれるのか。 #rubykaigi #rubykaigiA
2015-12-13 15:21:34アーキテクチャとしてはEmbulk Coreの上にExecutor Pluginが乗って、Input(+Decoder, Parser)とOutput(+Formatterなど)とFilterが更に乗っかる、と。 #rubykaigi #rubykaigiA
2015-12-13 15:22:53embulkはコアの上にexecutor pluginが載って、そことinput filter outputが通信、filterとguessが通信する構造 #rubykaigi #rubykaigiA
2015-12-13 15:23:29EmbulkArchitektureってあんな感じなんだ。 Java RuntimeとJRuby Runtimeが隣にいる Javaで入ってJRubyで出て行く #rubykaigiA
2015-12-13 15:23:43Java RuntimeとJRuby Runtimeが並行して動いて、JRubyPluginLoaderPluginがgemから引っ張ってくると。ゲシュタルト崩壊しそうな名前だ #rubykaigi #rubykaigiA
2015-12-13 15:23:56