Plugin architecture is known as a technique that brings extensibility to a program. Ruby has good language features for plugins. is an excellent platform for plugin distribution. However, creating plugin architecture is not as easy as writing code without it: plugin loader, packaging, loosely-coupled API, and performance. Loading two versions of a gem is a unsolved challenge that is solved in Java on the other hand.
I have designed some open-source software such as Fluentd and Embulk. They provide most of functions by plugins. I will talk about their plugin-based architecture.

Recorded video


Sadayuki Furuhashi
Sadayuki Furuhashi
Founder & Software Architect at Treasure Data, Inc. "Sada" is an enthusiast for open-source software design that helps application of distributed systems. An example is MessagePack, an efficient binary serialization format. github: