~/talk

Plugin-based software design with Ruby and RubyGems

Talkat RubyKaigi 2015 · 2015-12-11..12-13· [ruby]
slides:none on file

Plugin architecture described uses a thin core with most features as plugins: a C core collects data and Ruby plugins provide I/O and transforms, exemplified by Fluentd and Embulk. Uses RubyGems plugin loader to auto-discover installs, handles hundreds of gigabytes per day in production, and exposes a 300+ plugins ecosystem. Embulk runs a Java core with JRuby plugin loading and per-plugin classloader hacks to allow differing dependency versions; classloader isolation works for Java but Ruby VM gem-version conflicts remain unsolved.

AI-written summary · about

  1. 0:00Intro
  2. 2:56Benefits of Plugin Architecture
  3. 4:48Traditional Extensible Software Architecture
  4. 5:49Plugin-based software architecture
  5. 8:38Dependency Injection (Java)
  6. 9:47Dependency Injection (Ruby)
  7. 11:18Dynamic Plugin Loader
  8. 12:23Combination
  9. 12:54Plugin Architecture Design Patterns
  10. 16:21Example: Simple forwarding
  11. 18:28Fluentd's Plugin Architecture
  12. 22:46Use case 1: Syne MySQL to Elasticsearch
  13. 26:06Embulk's Plugin Architecture
  14. 28:37Plugin Package Structure
  15. 29:36Embulk Plugin Load Sequence
  16. 32:42Plugin Version Conflicts
  17. 33:17Version conflicts in a Ruby Runtime
  18. 33:44Version conflicts in Fluentd
  19. 34:11Multiple JRuby Runtime?
  20. 35:10What's Next?
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.