We're going to talk about the Plugin API in Drupal 8 and when you should leverage the plugin system in your module to allow developers add functionality. Much of Drupal 8 utilizes plugins for things such as blocks, fields, field formatters, etc...
What is a plugin and how is it different than a module?
In this session, I'll take you through a simple use case of creating a Drupal 8 module without utilizing plugins, and then show you how to retrofit the module to use the Drupal 8 plugin system so that other module developers can add functionality to your module. We will go through a practical example so that you can see the true power of why you should be thinking about plugins when coding new module functionality, rather than coding for a single use case.
If you're not coding on Drupal 8 yet, you may still find value from this session. This session will help you get in the mindset of thinking about "interchangeable" and "swappable" components. Time permitting I'll show how same plugin concepts can be applied to Drupal 7 using the ctools plugin system. There won't be a deep dive into ctools plugins for Drupal 7, but the concepts still apply.